一道不懂的逻辑“与”,逻辑“或”,求解答
#include <stdio.h>int main(void)
{
int x, y, z;
x = y = z = 2;
++x || ++y && ++z;
printf("%d, %d, %d\n", x, y, z);
++x && ++y || ++z;
printf("%d, %d, %d\n", x, y, z);
return 0;
}
这是程序的源代码。
我认为运算的结果会是:
3,3,3
4,4,4
但是,我用gcc编译的结果是:
3,2,2
4,3,2
为什么会这样?不是都自加而已吗???
这道题逻辑运算的顺序是怎么样?