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

C語言陣列後置自增賦值:a[i++]=i 執行邏輯與輸出分析

     編輯:C 語言問答

代碼邏輯逐步追蹤


int i, a[10];
for (i = 0; i < 10; )
    a[i++] = i;
for (i = 9; i >= 0; i--)
    printf("%d", a[i]);

第一個循環詳細執行

迭代循環前 ia[i++] = i 語義賦值後 a[]i++ 後 i條件檢查
10a[0] = 0a[0]=011<10 繼續
21a[1] = 1a[1]=122<10 繼續
..................
109a[9] = 9a[9]=91010<10 停止

陣列最終內容

a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4,
a[5]=5, a[6]=6, a[7]=7, a[8]=8, a[9]=9

第二個循環輸出


for (i = 9; i >= 0; i--) printf("%d", a[i]);
// 輸出: 9876543210

關鍵點總結

  • a[i++] = i:先用 i 作下標存儲 i 的**當前值**,再 i++
  • 等價於:a[i] = i; i++;
  • 循環條件 i < 10 在 i++ **之後** 檢查,故恰好執行 10 次
  • 若寫成 a[++i] = i 則先增後用,首次存 a[1]=1,a[0] 保持 0
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved