这个C程序为什么输出为1,0,0,而不1,0,1?

main(){ int x,y,z; x=y=z=0; ++x||++y&&++z; printf("x=%d尀ty=%d尀tz=%d尀n",x,y,z,);}
2025-04-29 22:43:54
推荐回答(2个)
回答1:

我觉得跟编译器的实现有关,可能有的编译器会输出1,0,1
你用的编译器能推断出&&的优先级比||高,而++x为true则后面的就都不用算了

回答2:

++x正确后因为后面是||所以就直接执行printf语句了。