我只想解释++和 - 给我的学生,并在visual studio 2010中向他们展示一些关于他们的代码 我只是在上面测试这段代码
int main(){
int a=3;
int b=3;
a=a++;
cout<<a<<endl;
cout<<b++<<endl;
}
我希望两个cout打印3但第一个cout打印4 !!!! 我用g ++测试它,两个couts打印3 ... 怎么了???
答案 0 :(得分:7)
a=a++
的行为未定义。如果您想增加a
,请改用a++
。
答案 1 :(得分:4)
答案 2 :(得分:1)
a=a++;
定义不明确。不要使用它。
答案 3 :(得分:1)
您只能在C ++ IIRC中的一个序列点内执行一项任务。所以这是未定义的。以下演示文稿深入讨论了此问题http://www.slideshare.net/olvemaudal/deep-c。