hce_nsysu
112年
計算機概論與程式設計
第 26 題
When executing a function call in a program, which data structure will be taken to store the status of the global variables and recover them back once the execution of the function is complete?
- A Heap
- B Linking list
- C Array
- D Stack
- E None of the above
思路引導 VIP
想像你正在閱讀一本書,突然電話響了,你拿了一張書籤夾在當前頁面去接電話;接電話時,門鈴又響了,你必須再拿第二張書籤記下通話進度去開門。當你處理完最緊急的事情(開門)後,你會如何利用這些「書籤」來依序找回你剛才中斷的動作?這種「最後放下的標記最先被拿回來使用」的邏輯,會讓你聯想到哪一種資料處理的方式呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你非常精準地掌握了程式執行時的核心機制。這題你選擇 (D) Stack (堆疊) 是完全正確的判斷。
函數呼叫與堆疊的運作邏輯
在計算機科學中,當一個函數被呼叫時,系統必須暫存當前的執行狀態(包括返回位址、暫存器數值等),以便在該函數執行完畢後,能夠順利「回到過去」繼續執行。這種機制完美契合了堆疊 「後進先出」(Last-In-First-Out, LIFO) 的特性:最後一個被呼叫的函數會最先執行完並被「彈出」(Pop),接著恢復前一個函數的狀態。雖然題目提到的「全域變數」(Global Variables) 通常存放於靜態資料區,但在多數編譯器的實作或特定上下文切換中,若需保護當前執行環境的狀態,堆疊 依然是管理這種「層次化呼叫」最合適的結構。
▼ 還有更多解析內容