指向struct成员的指针上的++运算符

时间:2015-09-16 14:55:48

标签: c

我遇到了一段代码:

++myStruct->counter

我对++运算符和 - >的混淆感到困惑。运算符在这里评估。 ++优先于 - >操作员和从左到右的评估。似乎++运算符实际上会在' myStruct'上执行指针运算,而不是递增计数器成员。

3 个答案:

答案 0 :(得分:3)

postfix 增量和减量具有与->运算符和从左到右关联性相同的优先级,但前缀增量和减量在后面。因此代码会增加变量counter而不是myStruct

答案 1 :(得分:3)

根据cppreference前缀 ++ / --运算符的优先级低于->运算符。 后缀一个具有相同的优先级,但是从左到右的关联性。

答案 2 :(得分:3)

  

++优先于 - >操作员和从左到右的评估。

这是不正确的 - 像->这样的后缀运算符的优先级高于一元(前缀)运算符++--。表达式被解析为

++(myStruct->counter)

所以counter的{​​{1}}成员正在递增。