关于运营商优先权的信息冲突

时间:2017-05-09 11:17:56

标签: c expression operator-precedence associativity

我最近在Kenneth A. Reek的C书上读过指针。这本书有一个很好的C运算符表和它们的优先级。但是,当我检查其他资源以确保书中提供的信息是正确和最新的时,我发现周围有不同的信息。我将提供精确的例子来说明我的意思。

本书提供了一个表,其中函数调用运算符()具有最高优先级。后缀增量和减量运算符正在追赶。我已检查过其他资源以验证信息。我已经检查过此resource以及此resource和此resource。这些资源中提供的优先级信息与Cinter上的指针中的说明相匹配。问题始于cppreference中的precedence table,因为它具有与其他资源不同的优先级规则。

我错过了什么?

1 个答案:

答案 0 :(得分:6)

作为already mentioned in the linked resource

  

位于同一单元格中的运算符(单元格中可能有多行运算符)在给定方向上使用相同的优先级进行求值。例如,表达式{{1由于从右到左的关联性,解析为a=b=c,而不是a=(b=c)

因此,任何文章 中的运算符(具有相同优先级) 的书面顺序无关紧要,关联性(存在于要评估的实际语句中)很重要。