关于c++里自增自减的小问题??

发布时间:2024-06-01 10:35 发布:上海旅游网

问题描述:

这两个程序的结果为什么不同呢?
#include <iostream>
using namespace std;
int main()
{int a=1;
a=(a++)+(++a);
cout<<a<<endl;
return 0;
}
结果是5

#include <iostream>
using namespace std;
int main()
{int a=1;
(a++)+(++a);
cout<<(a++)+(++a)<<endl;
return 0;
}
结果是4
为什么会这样??高手解答一下吧!

问题解答:

因为编译器对各表达式的运算有不同的先后次序,为了使代码优化而出现隐式错误。
因此建议不要在同一个表达式中使用多次增量和减量运算符;不要在函数参数中使用增量和减量运算符。

不同编译器的结果不一样,一般不建议过多的用++ / --操作。。至于为什么得出那些答案,你要去查查编译器如何工作的,不必深究,考试不会出

热点新闻