關於 i 和 i 的區別

2021-07-24 10:33:20 字數 1124 閱讀 9135

i++ 和 ++i 的使用分為兩種情況:1、單獨使用;2、放入表示式中使用。

1、第一種情況,單獨使用時從實現的效果(即程式的執行結果)上看是等價的。

2、當放入表示式中使用,則有本質區別:

b = ++i; 字首形式,等價於 i = i + 1; b = i;

b = i++; 字尾形式,等價於 b = i; i = i + 1;

i++ 是先使用後自加,在結束標誌時才加上1(;和,和函式()都是結束標誌);而 ++i 則是先自加後使用。

i++ 可以替換成數值,++i 可以替換成變數。

例如:#include

int main()

int i = 2;

num = (++i) + (++i) + (++i) + (++i);

printf("%d", i);

return 0;

其中num = 4+4+5+6=19;

#include

int main()

int i = 2;

i = i * ((i++) + (++i));

printf("%d", i);

return 0;

先算括號內i++在結束時加1,因++i 所以i 變為3,i = 3 * (3 + 3) = 18,18再加1為19。

#include

int main()

int i = 2;

i = (i++) + (++i) + (i++) + (++i);

printf("%d", i);

return 0;

先是前兩個因++i 所以i 為3,經第四++i 後 i 為4,所以為3+3+3+4=13,最後13+1+1=15。

#include

void func(int a, int b)

printf("a = %d\n", a);

printf("b = %d\n", b);

int main()

int i = 2;

func(++i, i++);

return 0;

func(++i, i++) 從右向左計算,經過i++,i = 2,中間經過逗號加1,i = 3,再經過++i,成為4。所以a = 4, b = 2。

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...

i 和 i的區別

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