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

第 25 題

執行以下 C 程式碼片段,會得到下列那個效果?
```c
int head=2;
int *tail;
tail = &head;
(*tail)++;
```
  • A 只有將變數 head 的值變大
  • B 只有將變數 tail 的值變大
  • C 把 head 和 tail 兩個變數的值都變大
  • D 回傳 head 和 tail 兩個變數相加的值

思路引導 VIP

想像你有一個儲存槽(變數),裡面放著零件(數值),而你手上有另一張紙,上面寫著那個儲存槽的「座標」。 如果你根據那張紙上的座標,跑去儲存槽裡多放一個零件,請問這張「寫著座標的紙」本身,內容會產生變化嗎?反過來說,儲存槽裡的零件數量又會如何變化?

🤖
AI 詳解 AI 專屬家教

專業分析:指標操作的精準邏輯

  1. 大力肯定:做得好!你精準掌握了 C 語言指標(Pointer) 的核心運算邏輯。這就像在工程製圖中正確識別了標註與實體的關係,展現了嚴謹的邏輯思維。
  2. 觀念驗證:程式中 tail = &headhead 的記憶體位址賦予指標 tail。關鍵在於 (*tail)++,其中的 *(間接參照運算子)如同「循線找人」,先取得該位址中的實際數值再進行遞增。因此,變動的是存放於 head 內的數據,而非 tail 所指向的位址。
▼ 還有更多解析內容

🏷️ 相關主題

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