C ++;结构域

C ++;结构域,c,increment,operator-precedence,associativity,C,Increment,Operator Precedence,Associativity,例如: ++structure.field; 递增字段而不是给出“错误的递增类型参数”编译器错误,尽管有++和。操作符是平等层次化的:应该从左到右执行 我在这里遗漏了什么吗?前缀和后缀++具有不同的优先级的优先级高于前缀增量运算符,如上所示 和后缀增量具有相同的优先级。如果您编写了structure.field++,那么它们将具有与(structure.field)+相同的优先级和关联性,以解决歧义,而不是structure.(field++)

例如:

++structure.field;
递增
字段
而不是给出“错误的递增类型参数”编译器错误,尽管有++和。操作符是平等层次化的:应该从左到右执行


我在这里遗漏了什么吗?

前缀和后缀
++
具有不同的优先级
的优先级高于前缀增量运算符,如上所示

后缀增量具有相同的优先级。如果您编写了
structure.field++
,那么它们将具有与
(structure.field)+
相同的优先级和关联性,以解决歧义,而不是
structure.(field++)