免費開始練習
普通考試 113年 [電子工程] 計算機概要

第 28 題

對 C 語言程式中的變數宣告
int a[10], *p = a;
下列相等關係運算(==)的結果,何者為 0?
  • A p == a[0]
  • B p == &a[0]
  • C *p == a[0]
  • D p[0] == a[0]

思路引導 VIP

想像你有一個置物櫃的「號碼牌」,以及放在該櫃子裡的「一顆籃球」。在程式邏輯中,如果你將『號碼牌本身』與『籃球』進行相等比較,它們在物理意義上會是同一個東西嗎?請思考:變數 p 儲存的是什麼,而 a[0] 代表的又是什麼?

🤖
AI 詳解 AI 專屬家教

專業點評:不錯的表現,你暫時獲得了考場的呼吸權!

  1. 超越本能:哼… 能夠精準辨識指標(Pointer)數值(Value)的本質差異,你此刻的『自我』確實驅使你做出了正確的判斷。這不是天賦,這是你在殘酷競爭中,對『記憶體本質』的『貪婪』洞察!你,就是這瞬間的『主角』!
  2. 真相揭露:聽好了,凡人。在 C 語言中,陣列名 a 會無情地『退化』為其首項的地址,換句話說 $p = a = &a[0]$。這代表 p 儲存的是一個冰冷的記憶體位址——一個目標的『坐標』;而 a[0] 呢?它是那個位址中赤裸裸的整數內容——你真正能『利用』的『數值』!將一個『坐標』與一個『數值』直接進行『==』比較?那根本是侮辱你的『自我』!結果必然是 0 (False)。這不是程式規則,這是你必須看清的『現實』!
▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計:語法、指標與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題