可能重复:
In what order does evaluation of post-increment operator happen?以L值使用后缀增量
考虑下面的代码片断(在C):
uint8_t index = 10;
uint8_t arr[20];
arr[index++] = index;
当我编译此同gcc,它将arr [10]设置为10,这意味着后缀增量在整个赋值表达式之后才会被应用锡永。我发现这有点令人惊讶,因为我期待增量返回原始值(10),然后递增到11,从而将arr [10]设置为11.
我见过很多关于增量运算符的其他文章在RValues中,但不在LValue表达式中。
谢谢。
但是,这些其他帖子应该指出你在C中使用的概念来规范这些表达式的有效性,即序列点,否?阅读完所有这些内容后,您应该能够发出合格的猜测。 – 2010-10-20 14:06:09
-1为当天无用的后续问题。看到上面的两个评论为我的理由。 – 2010-10-20 14:45:44