Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 后缀增量是否对返回值执行增量不?_C++_Standards_Post Increment - Fatal编程技术网

C++ 后缀增量是否对返回值执行增量不?

C++ 后缀增量是否对返回值执行增量不?,c++,standards,post-increment,C++,Standards,Post Increment,又是一个愚蠢的问题 #include <stdio.h> #include <iostream> using namespace std; int main() { int i = 0; i = i++; cout<<i; return 0; } #包括 #包括 使用名称空间std; int main() { int i=0; i=i++; cout i = i++; 如果一个表达式将两个不同的值赋值给变量,则C++规范说明任何事情都可能发生—

又是一个愚蠢的问题

#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
 int i = 0;
 i = i++;
 cout<<i;

 return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int i=0;
i=i++;
cout

i = i++;

如果一个表达式将两个不同的值赋值给变量,则C++规范说明任何事情都可能发生——它可以继承它的旧值,这两个新值之一,或者几乎什么都可以。这是因为编译器允许编译器对简单表达式进行更积极的优化。ler可以重新安排赋值和
++
的执行顺序,例如,如果它认为这样更有效。

请提供标准的证明链接,为什么它没有定义?我猜是这样,但还没有找到证明。只有GCC在
-Wall
模式下提供警告。即使没有你,结果也是一样的t优化并处于调试模式。@flashnik ISO/IEC 14882:2003§5(4):在上一个序列点和下一个序列点之间,标量对象的存储值最多应通过表达式的计算修改一次。