c语言 turbo c中 逻辑表达式 自加问题。

来源:百度知道 编辑:UC知道 时间:2024/06/19 10:17:36
main()
{
int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("x=%d y=%d z=%d\n",x,y,z);
}

为什么执行结果为x=1 y=0 z=0?
不应该是x=1 y=1 z=1吗?turbo c是怎样计算的?

因为这是短路运算,“||”或的时候,只要其中一个为真,整个就为真,所以++x的时候,表达式为真了,那么以后的运算就不做了,所以后面的没执行

如果是&&的话,如果前面的为假,那后面的就不做了