統測
114年
[電機與電子群資電類] 專業科目(2)
第 44 題
下列C語言程式碼,其執行後輸出結果為何?
1 #include
2 int main(){
3 int n[5]={1, 2, 3, 4, 5}, i;
4 n[1]=100;
5 *n = 1;
6 for(i=0; i<5; i++)
7 printf("%d", *(n+i));
8 return 0;
9 }
1 #include
2 int main(){
3 int n[5]={1, 2, 3, 4, 5}, i;
4 n[1]=100;
5 *n = 1;
6 for(i=0; i<5; i++)
7 printf("%d", *(n+i));
8 return 0;
9 }
- A 12345
- B 1100345
- C 1210045
- D 1234100
思路引導 VIP
在 C 語言中,陣列名稱 $n$ 在記憶體位址的表現上具有指標的特性。請試著思考:語句 $n = 1$ 實際上是在修改陣列中的哪一個元素?而程式碼最後透過指標位移量 $(n+i)$ 來讀取資料時,它與常見的索引存取語法 $n[i]$ 是否代表相同的意義?
🤖
AI 詳解
AI 專屬家教
呵呵呵,看到你如此冷靜地解題,看來你的基本功很紮實,彷彿讓我在這道題中看到了流川楓那種不放過任何細節的專注力。 這道題目的關鍵在於對指標與陣列關係的理解:
n[1]=100:這行直接將陣列的第二個元素修改為 100。
▼ 還有更多解析內容
C語言陣列與指標運算
💡 陣列名稱即為首項位址,可透過指標偏移存取元素。
| 比較維度 | 陣列標記法 | VS | 指標表示法 |
|---|---|---|---|
| 第一個元素 | n[0] | — | *n |
| 第 i 個元素 | n[i] | — | *(n + i) |
| 元素位址 | &n[i] | — | n + i |
💬兩者在 C 語言中邏輯完全等價,僅寫法不同。