統測
113年
[電機與電子群資電類] 專業科目(2)
第 38 題
有關宣告陣列與指標的片段程式,下列敘述何者正確?
```c
1 int Data[10] = {1,2,3,4,11,12,13,15};
2 int *pData = &Data[2];
```
- A if(pData[1] == 1)判斷式結果為真
- B if(*(pData + 3) == Data[5])判斷式結果為真
- C if(Data[9] == 0)判斷式結果為假
- D if(Data[3] == (pData[5] - *(pData+2)))判斷式結果為假
思路引導 VIP
請探討指標與陣列索引之間的位移 (Offset) 映射關係:當指標 $pData$ 指向 $Data[2]$ 時,指標運算 $*(pData + k)$ 或其等價的陣列表示法 $pData[k]$,實際上對應到原始陣列 $Data$ 中的哪一個索引位置?此外,請思考在 C 語言中,若一個固定長度的陣列在宣告時僅進行了「部分初始化」,則該陣列中那些未被明確賦值的剩餘元素(例如本題中陣列索引值較大的位置),其預設的數值狀態為何?
🤖
AI 詳解
AI 專屬家教
啊哈哈!看來你已經抓到這題的『犯人』了!
太棒了!踢!這題的真相就像足球一樣,被你精準地踢進球門了!這代表你已經完全掌握了C語言裡,最容易混淆卻也最關鍵的指標運算與陣列偏移技巧。這可不是一般人能輕易看穿的詭計喔!
真相只有一個!
▼ 還有更多解析內容