Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是(++i)++未定义的行为吗?在检索增量对象以进行后缀增量操作后,前缀增量的副作用是否可能发生?这对我来说似乎很奇怪。
(++i)++
我的直觉说这在 C++03 中是未定义的,在 C++11 中是明确定义的。我对吗?
我的直觉说这在 C++03 中是未定义的,而在 C++0x 中是明确定义的。
是的你是对的。该行为在 C++03 中未定义,因为您尝试i在两个序列点之间进行多次修改。
i
该行为在 C++0x 中定义良好,因为(++i)++等效于(i += 1)++. 运算符的副作用+=是相对于++(后增量)排序的,因此行为是明确定义的。
(i += 1)++
+=
++
这是一个未定义的行为,因为i在两个序列点之间被多次修改。