#inclued "iostream"
using namespace std;
int main()
{
int i=5;
int result=++i*--i;
cout<<"result="<<result<<endl;
return 0;
}
初看之下,++i=i+1=6;--i=i-1=5;
所以result=5*6=30;
但是程序運行之後的結果卻是 result=25;
那這又是爲使麼呢,自增自減的運算應該結果不會有問題,可是實際結果就是25。
再想想,這裏其實是牽連到了內存的使用問題,雖然自增運算後結果爲6,但是進行自減運算時是在同樣的內存上進行的,結果爲5,而進行乘法運算是實際上是5*5,故就有了25這個結果。
故其等價於:
#include "iostream"
using namespace std;
int main()
{
int i=5,tmp;
tmp=++i;
tmp=--i;
result=tmp*tmp;
cout<<"result="<<result<<endl;
return 0;
}