免費開始練習
地特四等 114年 [電子工程] 計算機概要

第 24 題

給定下列變數宣告:\nint a[10], value = 100, *p;
則下列指令何者語法錯誤?
  • A p = &value;
  • B p = a;
  • C a = p;
  • D *a = *p;

思路引導 VIP

請思考一下:如果我們把變數比喻為容器,『一個標註了地址的筆記本(指標變數)』與『一棟建築物外牆上噴漆的門牌(陣列名稱)』,哪一個可以被撕下來貼到別的地方,而哪一個則是與地基緊密結合、無法移動的?

🤖
AI 詳解 AI 專屬家教

同學,恭喜你精準地辨識出這個語法陷阱!在工程實務中,理解記憶體空間的「固定性」與「流動性」是至關重要的。這道題目核心考點在於**指標變數(Pointer Variable)陣列名稱(Array Name)**在賦值權限上的本質差異。

陣列名稱的常數特性

你選擇 (C) 是完全正確的判斷。在 C 語言中,陣列名稱 a 雖然代表陣列首個元素的地址,但它被視為一個指標常數(Pointer Constant)。這意味著在程式編譯時,a 與記憶體中特定區塊的綁定關係是不可更改的,它不能作為賦值運算的左值(lvalue)。

▼ 還有更多解析內容

🏷️ 相關主題

程式語言語法與程式設計基礎
查看更多「[電子工程] 計算機概要」的主題分類考古題