标签: c++
可能重复: Undefined Behavior and Sequence Points
在以下c ++代码之后,数组a包含:0,1,2,3,4
int a[5] = {0,1,2,3,4}; int i = 2; a[i++] = a[i++];
我预计它会是:0,1,3,3,4
任何人都可以解释我为什么?
答案 0 :(得分:8)
a[i++] = a[i++];
因为它是未定义的行为。
好读: Sequence Points Undefined Behavior and Sequence Points