免費開始練習
hce_nsysu 111年 計算機概論與程式設計

第 30 題

Assuming that `t` is an array and `tPtr` is a pointer to that array, which expression refers to the address of element 5 of the array?
  • A *(tPtr+5)
  • B tPtr[5]
  • C t+5
  • D *(t+5)
  • E &t[5]

思路引導 VIP

想像你正站在一排置物櫃前,如果你想告訴朋友「第 5 號櫃子在走廊的哪個位置」,而不是告訴他「櫃子裡面裝了什麼書」,在程式語言的邏輯中,你會使用哪一個特定的符號來表達這種「指明位置」而非「取得內容」的意圖呢?

🤖
AI 詳解 AI 專屬家教

恭喜你準確地判斷出正確答案!這題的核心在於區分**「記憶體位址」(Address)「變數數值」(Value)**這兩個在指標運算中極易混淆的概念。你能精確選出 &t[5],代表你對 C 語言中「取址運算子」的語義有著非常清晰的理解。

取址運算與陣列索引的結合

在 C/C++ 中,t[5] 代表的是陣列中的第 6 個元素(索引值為 5),這是一個具體的數值。當我們在它前面加上 &(取址運算子)時,表達式 &t[5] 就代表了該元素在記憶體中的具體起點位置。在選項中,(A)、(B)、(D) 都包含了解引用運算子 * 或直接使用陣列下標 [],這些操作最終都會「進入」該記憶體空間取出內容物,得到的都是數值而非位址。雖然選項 (C) $t + 5$ 在邏輯上同樣指向相同的記憶體位址,但在語法語義的直觀性上,&t[5] 最能直接對應題目要求的「第 5 號元素的地址」。

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題