i和i 的根本區別

2022-04-09 13:46:24 字數 1094 閱讀 3761

至於++i和i++有什麼區別,舉個例子   

1.a = i++; 等校為

a = i;

i = i + 1;

2.a = ++i; 等校為

i = i + 1;

a = i;

i++和++i的 最重要的區別大家都知道就是 +1和返回值的順序

但,兩這還有乙個區別(在c++中)就是i++在實現的時候,產

生了乙個local object

class int;

//++i 的版本

int int::operator++()

//i++ 的版本

const int int::operator ++(int)

所以從效率上來說++i比i++來的更有效率

具體細節你可以看more effective c++ 的m6

看看c++類過載運算子就知道了。

對於i++的實現是:

int temp;

temp = i;

i = i+1;

return temp;

而++i的實現是:

i = i+1;

return i;

比如printf("%d",i++);是先輸出i值隨後i自加,而printf("%d",++i);正好相反

for(operation1;operation2;operation3)

都是按

operation1

operation2

//do something

operation3

的順序來執行的

而i++與++i在單獨的語句中結果是一樣的。

簡單而言: ++i 在 i 儲存的值上增加一併向使用它的表示式 ``返回" 新的, 增加後的值; 而 i++ 對 i 增加一, 但返回原來的是未增加的值。

i和i 的根本區別

至於 i和i 有什麼區別,舉個例子 1.a i 等校為 a i i i 1 2.a i 等校為 i i 1 a i i 和 i的 最重要的區別大家都知道就是 1和返回值的順序 但,兩這還有乙個區別 在c 中 就是i 在實現的時候,產 生了乙個local object class int i 的版本 ...

i和i 的區別

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

i 和 i的區別

當年上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 befor...