1.思考
- 下面代码的区别?为什么?
i++; // i的值作为返回值,i自增1
++i; // i自增1,i的值作为返回值
2.编程实验
- 真的有区别吗?
#include<iostream>
using namespace std;
int main()
{
int i = 0;
i++;
++i;
return 0;
}
- 结果:通过实际调试后发现二者的汇编代码完全相同。没有什么区别
- 在工程中,编译器会在忽略返回值情况下进行优化,即在工程中它们没有区别!!!
3.分析
- 现代编译器产品会对代码进行优化
- 优化使得最终的二进制程序