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

C語言自增自減運算子陷阱:前綴 vs 後綴在 for 迴圈中的行為差異

     編輯:C 語言問答

核心規則

  • ++n(前綴):先遞增,再取值參與運算。
  • n++(後綴):先取值,再遞增,原值參與運算。

題目分析

int n, iSum = 0;
for (n = 0; n++ < 2; ) ; // 空迴圈本體
iSum += n;
printf("n=%d, iSum=%d\n", n, iSum);

逐步追蹤

迴圈次數判斷條件 n++ < 2判斷用值判斷後 n迴圈結束後 n
10 < 2 → true013
21 < 2 → true12
32 < 2 → false23

迴圈結束時 n = 3,iSum = 0 + 3 = 3。
輸出:n=3, iSum=3

對比:若用 ++n < 2

迴圈次數判斷條件 ++n < 2判斷用值迴圈結束後 n
11 < 2 → true12
22 < 2 → false2

輸出:n=2, iSum=2

最佳實踐建議

  1. 避免在複雜表達式中使用副作用運算子。迴圈計數器更新寫在 for 第三欄或迴圈本體首行。
  2. 標準迴圈寫法:for (n = 0; n < 2; n++) —— 清楚、無歧義、編譯器優化最好。
  3. 若必須用 while:while (n++ < 2) 仍建議拆成兩行:while (n < 2) { ... n++; }。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved