i 和 i的區別

2021-07-10 14:46:25 字數 676 閱讀 8462

當年上c++課的時候對於i++和++i的區別就稀里糊塗。後來沒注意也沒出過什麼問題。但是這個問題還是應該搞清楚。

假如有乙個vector,值為[1,2,3,4,5,6,7]

用以下程式輸出:

i=0;    

while (i<7)

i=0;    

while (i<7)

{cout << "beforei:" << v[i] << endl;

cout <<

beforei:1

1afteri:2

beforei:2

2afteri:3

beforei:3

3afteri:4

。。。beforei:1

2afteri:2

beforei:2

3afteri:3

beforei:3

4afteri:4

。。。可見,對於向量v的索引而言v[i++]裡面仍然是自增前的i值

而對於v[++i]裡面已經是自增後的i值。

同樣的。對於自增前的v[i]和自增後的v[i]沒有任何區別。

這也是為什麼一般在寫for迴圈時

for(int i=0;i和

for(int i=0;i因為並沒有在i自增的過程中使用i。所以也不容易發現i++和++i的區別。

i和i 的區別

大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...

i 和 i的區別

很多朋友在學習基礎的時候很容易遇到過這個問題,i和i 到底有什麼區別?下面來詳細解釋一下。首先i 和 i單獨為一條語句時沒有任何區別 例如 int i 1 i 單獨為一條語句 system.out.println i i i 2 int i 1 i 單獨為一條語句 system.out.printl...

i 和 i的區別

i 與 i 的主要區別有兩個 1 i 返回原來的值,i 返回加1後的值。2 i 不能作為左值,而 i 可以。毫無疑問大家都知道第一點 不清楚的看下下面的實現 就了然了 我們重點說下第二點。首先解釋下什麼是左值 以下兩段引用自中文維基百科 右值引用 詞條 左值是對應記憶體中有確定儲存位址的物件的表示式...