a = a ++想知道视觉工作室的答案?

时间:2011-12-07 17:51:56

标签: c++ visual-studio-2010

  

可能重复:
  is i=i++ truly a undefined behavior?

我只想解释++和 - 给我的学生,并在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 ... 怎么了???

4 个答案:

答案 0 :(得分:7)

a=a++的行为未定义。如果您想增加a,请改用a++

答案 1 :(得分:4)

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您只能在C ++ IIRC中的一个序列点内执行一项任务。所以这是未定义的。以下演示文稿深入讨论了此问题http://www.slideshare.net/olvemaudal/deep-c