Board logo

标题: 逻辑命题求解 [打印本页]

作者: C玩家    时间: 2011-10-6 15:18     标题: 逻辑命题求解

问x=y=z=2; ++x || ++y && ++z;经过这些运算之后x,y,z的值是多少?运算步骤是怎样的?
作者: fwbook    时间: 2011-10-8 08:42

1# C玩家

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

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

按照优先级的高低,“++”运算不是比“||”和“&&”运算高级吗?那为什么不是先++x;++y;++z;然后再运算x||y&&z;呢?
作者: kobebryant    时间: 2011-10-9 20:01

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

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




欢迎光临 万卷图书 (http://wanjuanchina.net/) Powered by Discuz! 7.0.0