剛寫程式的時候
應該搞不懂
i++ 跟++i 到底哪裡不同
不是一樣都是遞增1嗎?(i=i+1)
其實兩個是不同的
一個是先做(++i)
一個是後做(i++)
然後就會問 先做跟後做有什麼不同?
主要是差別在Compiler在讀取時順序不同 所以就會有執行上的差別
講這麼一堆應該還是聽得霧煞煞的吧
所以還是要老套一下
用一下程式
#include<iostream>
using namespace std;
int main()
{
int i=1; //先做i++
cout<<"1:"<<i++<<endl;
cout<<"2:"<<i<<endl;
cout<<"=============="<<endl;
i=1; //數值歸回1 然後進行++i
cout<<"3:"<<i<<endl;
cout<<"4:"<<++i<<endl;
cout<<"5:"<<i<<endl;
return 0;
}
其結果
1:1
2:2
==============
3:1
4:2
5:2
有沒有發現什麼不同?
簡單的說
cout<<i++;
Compiler會先執行(畫底線的部分)
cout<<i++;
然後才執行(畫底線的部分)
cout<<i++;
所以是
先顯示 i 才進行 i++
哪如果是
cout<<++i;
則Compiler會先執行(畫底線的部分)
cout<<++i;
結果他發現了"++"
因為他不能直接顯示"++"
所以他就繼續讀取後面的東西(畫底線的部分)
cout<<++i;
結果他發現了"++i"
但也因為他不能直接顯示"++i"
所以就先將"++i"進行處理
(此時i已經遞增)
所以
其結果會發現
cout<<++i;
他會直接顯示已經遞增過的數值
這樣講應該夠詳細了吧
老話一句
不懂就問吧
留言列表