我遇到了一段代码:
++myStruct->counter
我对++运算符和 - >的混淆感到困惑。运算符在这里评估。 ++优先于 - >操作员和从左到右的评估。似乎++运算符实际上会在' myStruct'上执行指针运算,而不是递增计数器成员。
答案 0 :(得分:3)
postfix 增量和减量具有与->
运算符和从左到右关联性相同的优先级,但前缀增量和减量在后面。因此代码会增加变量counter
而不是myStruct
。
答案 1 :(得分:3)
根据cppreference,前缀 ++
/ --
运算符的优先级低于->
运算符。 后缀一个具有相同的优先级,但是从左到右的关联性。
答案 2 :(得分:3)
++优先于 - >操作员和从左到右的评估。
这是不正确的 - 像->
这样的后缀运算符的优先级高于一元(前缀)运算符++
和--
。表达式被解析为
++(myStruct->counter)
所以counter
的{{1}}成员正在递增。