首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

++i 與 i++ 區別深度解析:前綴與後綴自增運算符

     編輯:更多程式設計知識

初學程式設計時,++i 與 i++ 的區別常令人困惑。兩者皆為自增運算符,效果等同於 i = i + 1,但運算順序截然不同。

核心區別

運算符名稱執行順序回傳值
++i前綴自增先自增,後使用自增後的值
i++後綴自增先使用,後自增自增前的值

經典範例

int a, i = 3;
a = i++ + 1;  // a = 4 (先用 i=3 計算,再 i 變 4)

int b, j = 3;
b = ++j + 1;  // b = 5 (先 j 變 4,再用 4 計算)

特殊情況:單獨使用時無差別

當自增運算符獨立成語句時,兩者效果相同:

i++;  // 效果等同於 ++i;
for (int i = 0; i < 10; i++) { }  // 循環中常用 i++,但 ++i 亦可

危險陷阱:未定義行為

同一表達式中多次修改同一變量,行為不可預測:


// 以下結果取決於編譯器實現,屬未定義行為
printf("%d %d", i++, i);      // 輸出順序不確定
a = i + ++i;                  // 結果不確定

鐵律:單一表達式中,避免對同一變量進行多次修改或修改後再讀取。

記憶口訣

++i:先加後用(先賦值,後使用)
i++:先用後加(先使用,後賦值)

掌握此區別,能避免許多隱蔽 Bug,寫出更可靠的程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved