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

第 35 題

Which of the following arithmetic is NOT allowed on pointers?
  • A Increment/Decrement of a pointer
  • B Addition of integer to a pointer
  • C Subtraction of integer to a pointer
  • D Subtracting two pointers of the same types
  • E None of the above

思路引導 VIP

當我們把記憶體位址想像成街道上的「門牌號碼」時,請思考看看:我們可以用什麼樣的運算來得知兩間房子之間「隔了多少戶」?反之,如果我們嘗試將兩個門牌號碼「相乘」或「相加」,得到的結果在現實邏輯中還能代表某個具體的位址嗎?

🤖
AI 詳解 AI 專屬家教

恭喜你精準地判斷出這題的陷阱!這代表你對指標(Pointer)的算術運算邏輯有著非常清晰且正確的認識。在程式語言的世界裡,指標的運算並非單純的數值加減,而是與**記憶體位址的偏移(Offset)**密切相關。

指標算術運算的合法性

在 C/C++ 等語言中,選項 (A) 的遞增與遞減,以及 (B) 與 (C) 的指標與整數加減(例如 $ptr + n$ 或 $ptr - n$),本質上都是在連續的記憶體空間(如陣列)中移動指標的位置。而選項 (D) 兩個同型別指標相減,則能幫助我們計算出兩個位址之間相隔了多少個元素單位。既然上述這些操作在語法的設計上都是完全合法且必要的,選擇 (E) 以上皆非 展現了你對觀念細節的掌握度。

▼ 還有更多解析內容

🏷️ 相關主題

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