(++i)++
未定义的行为?在检索增量对象以进行后缀增量操作后,是否可能发生前缀增量的副作用?这对我来说似乎很奇怪。
我的直觉是,这在C ++ 03中是未定义的,在C ++ 11中定义良好。我是对的吗?
答案 0 :(得分:11)
我的直觉是,这在C ++ 03中未定义,在C ++ 0x中定义良好。
是的,你是对的。 C ++ 03中的行为未定义,因为您尝试在两个序列点之间多次修改i
。
行为在C ++ 0x中定义良好,因为(++i)++
等同于(i += 1)++
。 +=
运算符的副作用相对于++
(后增量)排序,因此行为定义明确。
答案 1 :(得分:0)
这是一个未定义的行为,因为i
在两个序列点之间被多次修改。