问题描述:
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的时候,表达式为真了,那么以后的运算就不做了,所以后面的没执行 如果是&&的话,如果前面的为假,那后面的就不做了