关于序列点的后增量
后增量运算符什么时候影响增量?我遇到了两种意见:
1)来自 http:// gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm:
POST 表示在任何操作之后执行操作 赋值操作。
2)更近一点,关于SO的答案(尽管C++)说:
...延迟增量 直到表达式结束 (下一个序列点)。
那么后增量操作是否...
A) 等待直到到达序列点或
B) 在赋值运算符后发生或
C) 在序列点之前的任何时间发生?
When does the post increment operator affect the increment? I have come across two opinions:
1) From http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm:
POST means do the operation after any
assignment operation.
2) Closer home, an answer on SO(albeit on C++) says:
... that delays the increment
until the end of the expression
(next sequence point).
So does the post increment operation...
A) wait until a sequence point is reached or
B) happen post an assignment operator or
C) happen anytime before the sequence point?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正确的解释是C,即。增量发生在下一个序列点之前的某个时间,特别是 C 标准 (C99, 6.5.2.4, 2) 是这样说的:
全段引用:
The correct interpretation is C, ie. the increment happens sometime before the next sequence point, specifically the C standard (C99, 6.5.2.4, 2) says this:
Full paragraph quotation:
无论使用增量运算符的表达式如何,后增量操作始终发生在下一个序列点之前。
请参阅此链接了解更多信息 http://en.wikipedia.org/wiki/Sequence_point
The post increment operation always occurs before the next sequence point irrespective of the expression where the increment operator is being used.
See this link for more info http://en.wikipedia.org/wiki/Sequence_point