我怎么知道II和&?之间的顺序?

时间:2013-10-25 05:52:57

标签: c

这是我的问题:x是11,y是6,z是1。

w的价值是什么?

w = x == y || x != y && z > x;

我不明白如何决定是否应该评估||或者&&第一

3 个答案:

答案 0 :(得分:3)

&&的优先级高于||。还需要知道什么?

x == y || x != y && z > x;

x != y评估为truez>x评估为false,因此x != y && z > x评估为false。所以我们有:

x == y || false;

现在,x==yfalse,我们得到:

false || false;

然而,如果您感到困惑,那么评估顺序并不依赖于优先级。为了更深入地了解我所说的内容,请在这里阅读Jerry Coffin提出的问题的答案。

Operator Precedence vs Order of Evaluation

答案 1 :(得分:1)

对此进行评估w = (x == y) || (x != y && z > x)维基百科拥有所有操作的完整订单http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages

答案 2 :(得分:0)

查看http://www.isthe.com/chongo/tech/comp/c/c-precedence.html的优先顺序。在这种情况下,&&的优先级高于||

如果您不确定,请使用支架。放置一个支架更有用,而不是头疼。