int x,y,z; x=y=z=-1; x++&&--y&&z--||--x; 是怎么运行的,最后x y z的值是多少

如题所述

int x,y,z;x=y=z=-1;++x&&++y||++z的运行过程是这样的:

++x时,先取x的值自增后为0(为假)。由于运算符为&&(逻辑与)所以后面的++y已经不需要做了。

又由于后面的运算符为||,所以还需检测后面的值。于是做++z的检测。z先自增,变为0(为假)。参与“逻辑或”的两个值都是假,所以,整个表达式的值为假。

又由于x和z两个变量的值参与了检测,自增为0,而y没有检测,值仍为-1。


上面的分析可以用一个简单程序加以验证:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2020-02-17
=这是右向左传值 所以在第二条语句时x,y,z都为-1;后面的是逻辑运算符 &&只要有假就返回假 及遇见0就返回0 x++是先用后增值 所以可看出在||之前的都非0 此时x==0 逻辑运算||只要前面有真就为真 不做后面计算 (--x是先减值后用的) 所以式子的值为1
x==0 y==-2 z==-2本回答被提问者采纳
相似回答