++structure.field 中的运算符层次结构
Operator hierarchy in ++structure.field
例子:
++structure.field;
递增 field
而不是给出 "wrong type argument to increment" 编译器错误,尽管 ++ 和 .运算符是等层次的,因此:应该从左到右执行。
我是不是漏掉了什么?
前缀和后缀 ++
具有不同的优先级。 .
的优先级高于 prefix 增量运算符,如 cppreference.com.
所示
.
和 postfix 增量具有相同的优先级。如果您写 structure.field++
那么它们将具有相同的优先级,并且关联性将作为 (structure.field)++
而不是 structure.(field++)
来解决歧义。
例子:
++structure.field;
递增 field
而不是给出 "wrong type argument to increment" 编译器错误,尽管 ++ 和 .运算符是等层次的,因此:应该从左到右执行。
我是不是漏掉了什么?
前缀和后缀 ++
具有不同的优先级。 .
的优先级高于 prefix 增量运算符,如 cppreference.com.
.
和 postfix 增量具有相同的优先级。如果您写 structure.field++
那么它们将具有相同的优先级,并且关联性将作为 (structure.field)++
而不是 structure.(field++)
来解决歧义。