民國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 為準。