本来想试一下C语言的与短路和或断路现象的,但是我用vs2019测试的的时候,发现与短路没发生,是怎么回事。还是我理解错了?求指点
#include<stdio.h>
int main()
{
int x, y, z;
x = y = z = -1;
++x&& ++y || ++z;//本以为会与短路的,但结果非我所想
printf("%d %d %d\n", x, y, z);
x = y = z = -2;
++x|| ++y && ++z;
printf("%d %d %d\n", x, y, z);
return 0;
}
口算结果是:
0 -1 -1
-1 -2 -2
编译器结果:
0 -1 0
-1 -2 -2