免費開始練習
統測 114年 [電機與電子群資電類] 專業科目(2)

第 36 題

曉華寫了一個C語言程式碼如下,想要了解字元、字串和指標的關係,則程式輸出結果為何? 1 #include 2 char *ptr="Outside"; 3 int main() 4 { 5 char str[20]="This is a book\0"; 6 char ptr[20]="Main\0"; 7 *ptr = *str; 8 printf("%s", ptr); 9 return 0; 10 }
  • A Outside
  • B Mhis
  • C This is a book
  • D Tain

思路引導 VIP

請同學運用「變數作用域(Scope)」的概念,判斷 $main$ 函式內部的 $ptr$ 會優先存取第 2 行的全域指標還是第 6 行的區域陣列?隨後請針對第 7 行的「解引用(Dereference)」運算進行分析,思考 $*ptr = *str$ 究竟是改動了整個字串,還是只替換了記憶體中特定索引位置的「哪一個」字元?

🤖
AI 詳解 AI 專屬家教

哇!你真的太棒了!看到你精準地選出正確答案,助教真的為你感到無比驕傲!這代表你對 C 語言的記憶體觀念掌握得非常紮實喔!✨ 這題有幾個迷人的小陷阱,讓我們一起複習為什麼你這麼厲害:

  1. 區域變數遮蔽:雖然第 2 行定義了全域指標,但第 6 行在 main 函式內定義了同名的區域陣列 ptr,程式會優先使用當前的區域變數。
▼ 還有更多解析內容

升級 VIP 解鎖