【发布时间】:2015-11-04 00:59:39
【问题描述】:
我正在阅读这篇文章 Precedence of && over || .它说,即使 && 的优先级大于 ||,我们也需要从左到右计算表达式,如果第一个表达式结果为真,那么我们不需要计算第二个表达式。 但是优先级是评估的顺序,因此应该首先评估所有预增量,然后评估 (++j && ++k)。这篇文章在这一点上似乎模棱两可。不是吗?
【问题讨论】:
-
优先级与评估顺序不同。优先级的意思是“括号在哪里自动插入?”评估顺序是“每个部分的评估顺序是什么?”
-
优先级影响分组而不是评估顺序。
a || b && c受优先级影响,因为&&在||之前抢占b,留下||抢占整个&&表达式:a || (b && c)。 -
@RaymondChen:似乎是一个常见的误解。 :( 误判?
-
好的。我告诉你,优先级只是用运算符对操作数进行分组,但我们如何知道评估的顺序?它是在某个地方定义的吗?
-
谁能告诉我逻辑表达式求值顺序与算术表达式求值顺序之间的区别?