是否有人知道这在C ++中是否有效
int a = 0;
a = a++;
有人告诉我,它会在C ++标准下产生未知行为,有人知道为什么,以及C ++标准中的哪个地方说明了这一点?谢谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
技术原因是你不应该在序列点之间修改相同的变量两次(直接或由于副作用)。
这是一个有很好答案的SO question,可以进一步阐明这一点,并描述一般的序列点。
答案 2 :(得分:0)
我不知道标准本身(它可能从C标准中引用),但在这里你可以读到它:
http://www.research.att.com/~bs/bs_faq2.html#evaluation-order