返回列表 发帖

逻辑命题求解

问x=y=z=2; ++x || ++y && ++z;经过这些运算之后x,y,z的值是多少?运算步骤是怎样的?
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

1# C玩家

分别说一下:
x=y=z=2;
相当于:
z=2;
y=z;
x=y;
所以x、y、z的值都是2。

++x || ++y && ++z;
是三个条件的逻辑运算。||和&&的运算优先级相同。这时,就从左边开始运算。而对于||运算符,只要有一个运算为真,就全部为真,后续的不运算了。在这里++x一旦为真,++y和++z就不运算了。

TOP

按照优先级的高低,“++”运算不是比“||”和“&&”运算高级吗?那为什么不是先++x;++y;++z;然后再运算x||y&&z;呢?

TOP

++优先级最高,先算。
&&优先级高于||,结合方向是自左向右。
当然,你给的这个题目是不影响结果。

如果改为下面题目就不一样了:
x=y=z=0;
++x || y ++&& ++z

TOP

返回列表