当x=y=z=0时,c语言中++x || ++y && ++z; x ,y,z的值是多少

当x=y=z=0时,c语言中++x || ++y && ++z; x ,y,z的值是多少?为什么?
2025-06-21 20:37:54
推荐回答(2个)
回答1:

只有x的值增加了1,其余值没有变
原因是,由运算符优先级可知原表达式等效于
++x
||
(++y
&&
++z)
然后又由于||运算符的短路效应,显然子表达式++x的值为非零,所以||右侧的表达式没有必要在去执行
故而只有x自增了1,其余值没有改变

回答2:

x,y,z分别为:1
0
0
;当++x为1之后,||的结果已经确定为1,后面的++y和++z不再执行,所以执行后xyz的值分别为1,0,0