代碼兩大問題:
for 迴圈再次 scanf 讀取,導致程式等待輸入 5 個數字,誤以為無反應。p < p+5 條件永真(p 遞增),會造成陣列越界訪問。int a[5], *p, i;
for (i = 0; i < 5; i++) scanf("%d", &a[i]); // 只讀一次
for (p = a; p < a + 5; p++) printf("%d ", *p); // 正確遍歷輸出
a+5 為陣列尾後位址固定不變,p+5 則隨 p 移動而移動,不可互換。