++structure.field中的操作者层次结构。

问题描述 投票:0回答:1

的例子。

++structure.field;

增量 field 而不是给出 "错误的增量类型参数 "的编译器错误,尽管++和.运算符是等价的层次结构,因此:应该从左到右执行。

我是不是遗漏了什么?

c standards
1个回答
5
投票

前缀和后缀 ++ 有不同的优先权。. 的优先级高于 前缀 增量运算符,如在 cppreference.com.

Excerpt of the operator precedence and associativity table from cppreference.com

.后缀 的增量具有相同的优先级。如果你写的是 structure.field++ 那么他们就会有同样的优先权,联想性就会启动,以解决歧义,就像 (structure.field)++ 而非 structure.(field++).

© www.soinside.com 2019 - 2024. All rights reserved.