6

(++i)++未定义的行为吗?在检索增量对象以进行后缀增量操作后,前缀增量的副作用是否可能发生?这对我来说似乎很奇怪。

我的直觉说这在 C++03 中是未定义的,在 C++11 中是明确定义的。我对吗?

4

2 回答 2

11

我的直觉说这在 C++03 中是未定义的,而在 C++0x 中是明确定义的。

是的你是对的。该行为在 C++03 中未定义,因为您尝试i在两个序列点之间进行多次修改。

该行为在 C++0x 中定义良好,因为(++i)++等效于(i += 1)++. 运算符的副作用+=是相对于++(后增量)排序的,因此行为是明确定义的。

于 2010-12-03T15:50:51.537 回答
-1

这是一个未定义的行为,因为i在两个序列点之间被多次修改。

于 2012-03-06T05:55:26.980 回答