C++ C++;无效赋值

C++ C++;无效赋值,c++,variable-assignment,C++,Variable Assignment,可能重复: 有人知道这在C中是否有效吗++ int a = 0; a = a++; 有人告诉我,它会在C++标准下产生未知行为,有人知道为什么,C++标准中的哪些地方陈述了这一点?谢谢 技术原因是,您不应在序列点之间修改同一变量两次(直接或由于副作用) 下面是一个很好的答案,它进一步澄清了这一点,并总体上描述了序列点。我不知道标准本身(它可能引用了C标准),但您可以在这里了解它: 我以前发布过,我将再次发布: 强烈建议任何有此类问题的人已经注意到,行为尚未定义。但无论你想做什么,肯定有更好

可能重复:

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

int a = 0;
a = a++;

有人告诉我,它会在C++标准下产生未知行为,有人知道为什么,C++标准中的哪些地方陈述了这一点?谢谢

技术原因是,您不应在序列点之间修改同一变量两次(直接或由于副作用)


下面是一个很好的答案,它进一步澄清了这一点,并总体上描述了序列点。

我不知道标准本身(它可能引用了C标准),但您可以在这里了解它:


我以前发布过,我将再次发布:


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

已经注意到,行为尚未定义。但无论你想做什么,肯定有更好更清晰的方法。在本例中,一个简单的
a++做你想做的事,没有含糊不清或未定义行为的风险。