int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d尀n″,x,y,z);

为什么不先执行&&而执行|| 从而使得答案为3 2 0
2025-06-20 17:02:38
推荐回答(1个)
回答1:

||是逻辑或运算符,你的程序中判断a=++x || ++y && z++;

当++x为真,则判断整个表达式为真,所以++y && z++都不会执行了,
你可以改变x = -1,看看效果,这时++x为假,会执行++y && z++ ,结果为031;
&&和||类似,判断++y为假时就不会执行后面的判断了