在Java中,我使用
if (a != null && a.fun());
Run Code Online (Sandbox Code Playgroud)
通过充分利用短路评估和表达从左到右进行评估?
在C++中,我可以这样做吗?它们是否保证可以跨不同平台和编译器移植?
if (a != 0 && a->fun());
Run Code Online (Sandbox Code Playgroud) 我是C编程语言的初学者,最近我读过有关Logical AND &&运算符的内容.
我也知道,在C编程语言中,所有非零值都被视为TRUE.
NON-ZERO && NON-ZERO = 1
NON-ZERO && ZERO = 0
ZERO && NON-ZERO = 0
ZERO && ZERO = 0
Run Code Online (Sandbox Code Playgroud)
但是当我处理以下程序时,我没有得到预期的答案.
int main(){
int x, y, z;
x = y = z = -1;
y = ++x && ++y && ++z;
printf("x = %d, y = %d, z = %d, x, y, z);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期待着
x = 0, y = 0, z = 0
Run Code Online (Sandbox Code Playgroud)
但答案是
x = 0, y = 0, …Run Code Online (Sandbox Code Playgroud)