我的直觉表明,这在C 03中是未定义的,在C 11中有明确的定义.我是对的吗?
My gut feeling says this is undefined in C++03 and well-defined in C++0x.
是的,你是对的.在C 03中行为未定义,因为您尝试在两个序列点之间多次修改i.
行为在C 0x中定义良好,因为(i)等价于(i = 1). =运算符的副作用相对于(后增量)排序,因此行为定义明确.