后增量运算符何时影响增量?我遇到了两个意见:
1)来自http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm:
POST意味着在任何操作之后执行操作 任务操作。
2)言归正传,answer on SO(尽管在C ++上)说:
...延迟增量 直到表达结束 (下一个序列点)。
后期增量操作也是如此......
A)等到达到序列点或
B)在分配操作员或
之后发生C)在序列点之前的任何时间发生?
答案 0 :(得分:5)
正确的解释是C,即。增量发生在下一个序列点之前的某个时间,特别是C标准(C99,6.5.2.4,2)说:
更新操作数存储值的副作用应发生在 上一个和下一个序列点。
全段引文:
postfix ++运算符的结果是操作数的值。结果之后 获得后,操作数的值递增。 (即,适当的值1 类型被添加到它。)参见加法运算符和复合赋值的讨论 有关约束,类型和转换以及操作的影响的信息 指针。更新操作数的存储值的副作用应发生在 上一个和下一个序列点。
答案 1 :(得分:0)
后增量操作总是在下一个序列点之前发生,而与使用增量运算符的表达式无关。 有关详情http://en.wikipedia.org/wiki/Sequence_point
,请参阅此链接