【问题标题】:How to interpret the operator associativity?如何解释运算符关联性?
【发布时间】:2017-11-07 08:15:00
【问题描述】:

括号和指针符号优先级相同,从左到右处理。为什么下面的代码尝试从skb获取成员nfct,然后进行类型转换?似乎关联性是从右到左的。

(struct nf_conn *) skb->nfct 

【问题讨论】:

  • 这里不是括号而是强制转换,优先级低于->
  • 与您的问题不严格相关,因为这是 cast 而不是 带括号的表达式;但是“括号和指针符号具有相同的优先级” 是不正确的。带括号的表达式是一个主表达式,它比-> 高一级,->后缀运算符

标签: c operators operator-precedence associativity


【解决方案1】:

我相信您在这里缺少的重点是Operator Precedence

指针成员访问运算符 (->) 的优先级高于强制转换。

详细地说,(借用的措辞

  • 运算符优先级决定了在具有多个具有不同优先级的运算符的表达式中首先执行哪个运算符。
  • 当两个优先级相同的运算符出现在表达式中时,使用(或发挥作用)关联性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2016-07-19
    • 2013-11-30
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多