这是代码
int main()
{
int i=-3, j=2, k=0, m;
m = ++i||++j&&++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并输出:-2,2,0,1
但我不明白 m = ++i||++j&&++k;它是如何被执行的.有人请解释一下.谢谢!
最初你有4个变量:
m = ++i||++j&&++k;从左到右执行.所以第一个是++i- 我建议阅读i ++和++ i之间的差异 - 在这种情况下i增加1并变为i = -2
-2是true表达式,因此m变为1并且不计算表达式的其余部分.因为true or anything else无论如何总是如此.最后的结果: