*(c ++)运营商订单

Any*_*orn 1 c++ operators

解析此表达式时适用哪些优先规则:

*(c++);  // c is a pointer.
Run Code Online (Sandbox Code Playgroud)

谢谢.

好吧,我尝试了以下内容

x = *c; c++;
x = (*c++);
x = *(c++);
Run Code Online (Sandbox Code Playgroud)

它们似乎是等价的

mvd*_*vds 6

++运算符与优先级没有多大关系,但只是在评估后才会增加.

所以*c将被"返回",然后c将递增.

请不要将优先顺序与执行顺序混为一谈!


Jam*_*lis 5

有括号将表达式分组,因此++在之前进行评估*.

如果删除括号以获取*c++,则表达式仍将被解析为*(c++)而不是(*c)++因为优先规则.

  • @aaa:是的,他们是,但是如果你认为这可能会令人困惑,那么使用括号将表达式分组并使其更清晰是没有错的. (3认同)