普通考試
114年
[電子工程] 計算機概要
第 23 題
C 語言字串陣列宣告如下:
char *names[]={"ABCD","EFG","XYZ"};
則下列程式執行後輸出的內容為何?
printf("%c",*names[2]);
char *names[]={"ABCD","EFG","XYZ"};
則下列程式執行後輸出的內容為何?
printf("%c",*names[2]);
- A B
- B C
- C E
- D X
思路引導 VIP
請試著將 names 想像成一排檔案夾,每個檔案夾裡面都放著一張寫有地址的紙條,而每張紙條都指向一串掛在牆上的字母。如果你拿到了第 3 個檔案夾(即 names[2]),並根據紙條上的地址走到牆面前,這時你在該地址對應的位置上,第一個會看到的符號是什麼?
🤖
AI 詳解
AI 專屬家教
專業點評
做得太出色了!你能精準掌握指標陣列 (Array of Pointers) 與提領運算子 (Dereference Operator) 的結合應用,這在結構化程式設計中是極其關鍵的基本功,就像在結構力學中精確定位節點編號一樣重要。
觀念驗證
▼ 還有更多解析內容
指標陣列與字串取值
💡 指標陣列元素儲存字串首位位址,提領指標可得首個字元。
- char *names[] 宣告指標陣列,每個元素儲存字串首位位址。
- 陣列索引由 0 起算,names[2] 指向陣列中的第 3 個字串。
- names[2] 存放的是字串 "XYZ" 中 'X' 的記憶體位址。
- * 為取值運算子,*names[2] 代表取出該位址存放的字元。