民國111年 普通考試 電子工程 計算機概要

第25題

執行以下C 程式碼片段,會得到下列那個效果?int head=2;int *tail;tail = &head;(*tail)++;

題目

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

官方答案

  • 答案:A. 只有將變數head 的值變大

解析

tail = &head 使指標 tail 儲存 head 的位址,因此 *tail 就是 head 這個變數本身。運算式 (*tail)++ 會先取值,再把該值加一,效果等同於 head++,只改變 head 的內容。tail 本身儲存的位址並沒有被修改,所以不會變大;兩者相加或同時加一都不是這段程式的作用。正確效果為只有變數 head 的值變大。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。