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

发布时间:2024-05-12 17:05 发布:上海旅游网

问题描述:

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的时候,表达式为真了,那么以后的运算就不做了,所以后面的没执行

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

热点新闻