a=a++视觉工作室的奇妙答案

a=a++ wondering answer of visual studio?

本文关键字:答案 工作室 a++ 视觉      更新时间:2023-10-16

可能重复:
i=i++真的是一种未定义的行为吗?

我只想向我的学生解释++和--,并在visualstudio2010中向他们展示一些关于它们的代码我只是在上测试这个代码

int main(){
   int a=3;
   int b=3;
   a=a++;
   cout<<a<<endl;
   cout<<b++<<endl;
}

我希望这两个时装印花都是3,但第一个时装印花是4!!!!我在g++和两个couts print 3中测试了它。。。怎么了???

a=a++的行为未定义。如果要递增a,请改用a++

http://www.slideshare.net/olvemaudal/deep-c

阅读序列点

a=a++;定义不明确。不要使用它。

在C++IIRC中,您只能在一个序列点内进行一次赋值。所以这是未定义的。下面的演示深入讨论了这个问题http://www.slideshare.net/olvemaudal/deep-c。