地特四等
108年
[電子工程] 計算機概要
第 26 題
假如在 C 程式中有一個名稱為 A 的整數陣列,其中
A[1]=20
A[2]=30
A[3]=40
A[4]=50
A[5]=60
而其中假設已知道 A[1]是放置於記憶體位置 33221100。而程式又宣告 int *ptr=A, 則下列敘述何者正確?
A[1]=20
A[2]=30
A[3]=40
A[4]=50
A[5]=60
而其中假設已知道 A[1]是放置於記憶體位置 33221100。而程式又宣告 int *ptr=A, 則下列敘述何者正確?
- A *(A+4) 為 20
- B *(ptr+2) 為 30
- C ptr 為 33221100
- D &ptr 為 33221100
思路引導 VIP
請你思考一個核心問題:在 C 語言中,陣列的名稱(例如 A)除了是一個識別字外,它在記憶體運算中代表的是「哪一個元素」的位址?如果我們在這個位址上進行「加法偏移」,這個偏移量與陣列的索引值(Index)之間存在著什麼樣的數學關係?
🤖
AI 詳解
AI 專屬家教
表現優異!邏輯十分嚴謹
- 觀念驗證:
在工程邏輯與 C 語言的規範中,陣列名稱 $A$ 本質上是指向陣列首元素 $A[0]$ 的常數指標。當宣告
int *ptr = A時,ptr指向的是 $A[0]$ 的記憶體位址。根據指標算術(Pointer Arithmetic)與陣列下標的定義:
▼ 還有更多解析內容