C ++无效赋值

时间:2011-10-19 18:27:31

标签: c++ variable-assignment

  

可能重复:
  Undefined Behavior and Sequence Points

是否有人知道这在C ++中是否有效

int a = 0;
a = a++;

有人告诉我,它会在C ++标准下产生未知行为,有人知道为什么,以及C ++标准中的哪个地方说明了这一点?谢谢!

3 个答案:

答案 0 :(得分:3)

我之前发过,我会再发一次:

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

强烈建议任何有此类问题的人

答案 1 :(得分:1)

技术原因是你不应该在序列点之间修改相同的变量两次(直接或由于副作用)。

这是一个有很好答案的SO question,可以进一步阐明这一点,并描述一般的序列点。

答案 2 :(得分:0)

我不知道标准本身(它可能从C标准中引用),但在这里你可以读到它:

http://www.research.att.com/~bs/bs_faq2.html#evaluation-order