霜之哀伤 发表于 2013-1-2 01:51:42

【反正随便水】问个好玩的问题

int x = 0, y = 0, z = 0;
if(++x||++y&&++z);

问x, y, z的值是多少
&&的优先级高于||,但结果却是1, 0, 0

查书查到了这个

不知有没有关系?

secondsen 发表于 2013-1-2 02:15:10

擦,我得试试去,从没这么玩过

霜之哀伤 发表于 2013-1-2 12:16:47

回 1楼(secondsen) 的帖子

这是一道试题= =蛋疼。

mhqy 发表于 2013-1-6 13:12:33

C语言中对于逻辑判断语句的,如果多多个&&,其中一个为假,那么就不再做后面的逻辑判断,返回假。如果有多个||,其中一个为真,那么不再做后面的判断,返回真。

霜之哀伤 发表于 2013-1-20 16:38:44

引用第3楼mhqy于2013-01-06 13:12发表的:
C语言中对于逻辑判断语句的,如果多多个&&,其中一个为假,那么就不再做后面的逻辑判断,返回假。如果有多个||,其中一个为真,那么不再做后面的判断,返回真。
images/back.gif

事实上这道题的问题和短路法则关系不大,是结合律和运算顺序没关系的问题。

secondsen 发表于 2013-1-20 17:05:42

好像是这样哈,根据短路法则,答案应该不是100哇,这个设计真奇葩。。。
页: [1]
查看完整版本: 【反正随便水】问个好玩的问题