假设有一个表达式:
int result = a1*function1() + a2*function2();
其中a1,2- 这些是系数 0 或 1。 A function1,2- 这些函数在计算复杂性方面相当繁重。
那么,如果a1,例如,等于零,是否会被计算function1()?或者它会立即取值 0 吗?
假设有一个表达式:
int result = a1*function1() + a2*function2();
其中a1,2- 这些是系数 0 或 1。 A function1,2- 这些函数在计算复杂性方面相当繁重。
那么,如果a1,例如,等于零,是否会被计算function1()?或者它会立即取值 0 吗?
将会。短路评估仅适用于两个逻辑(布尔)运算符
&&和||。无需求助于 SO 即可找出答案的最简单方法是调试输出以进行救援:
答:是的,
function1会计算的。