(++i)++是否是未定义行为?可能会出现这样的情况:前缀递增的副作用发生在获取递增对象之后,以便后缀递增进行操作。这对我来说似乎很奇怪。 我的直觉告诉我,在C++03中这是未定义的,在C++11中是有定义的。我对吗?
我的直觉告诉我,在C++03中这是未定义的,在C++11中是定义良好的。是的,你说得对。在C++03中,行为是未定义的,因为你在两个序列点之间尝试多次修改i。在C++11中,行为是定义良好的,因为(++i)++等同于(i += 1)++。+=运算符的副作用相对于++(后增量)是有序的,因此行为是定义良好的。