關於 ++i*--i 問題自己的理解

 

#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;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章