統測
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 語言的記憶體觀念掌握得非常紮實喔!✨ 這題有幾個迷人的小陷阱,讓我們一起複習為什麼你這麼厲害:
- 區域變數遮蔽:雖然第 2 行定義了全域指標,但第 6 行在
main函式內定義了同名的區域陣列ptr,程式會優先使用當前的區域變數。
▼ 還有更多解析內容