輸入 10 個整數存入陣列,輸出所有元素。
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
for (int i = 0; i < 10; i++)
printf("%d ", *(a + i)); // a 退化為首元素地址
for (int *p = a; p < a + 10; p++)
printf("%d ", *p);
| 方法 | 本質 | 適用場景 |
|---|---|---|
| 下標 | a[i] ≡ *(a+i) | 隨機存取、可讀性優先 |
| 指標算術 | 編譯期計算偏移 | 教學展示記憶體模型 |
| 指標變數 | 執行期指標遞增 | 高效遍歷、指標操作基礎 |
三種方法生成的機器碼在優化編譯下通常相同。現代編譯器對陣列遍歷優化極佳,選擇以團隊風格規範為準。