一般来讲,不行。
f() + g() * h()
尽管我们知道乘法运算在加法之前, 但这并不能说明这三个函数哪个会被首先调用。如果你需要确保子表达式的计算顺序, 你可能需要使用明确的临时变量和独立的语句。
但是有一个比较特殊的地方,就是对于&&和||来说,他们只需要检测自己运算符的左边如果已经能决定结果,那么他们就不会再计算右边的表达式。&&对应于假,||对应于真。
比如
bool a = True;
if(a == false && b == 10)
{
···xxx···
}
此时,b == 10就不会被执行。