免費開始練習
moea_joint 111年 [資訊] 計算機原理、網路概論

第 12 題

將一組陣列(Array)的值由主程式傳遞給副程式,使用哪一種呼叫方式會使資料的傳遞速度較快?
  • A 傳名呼叫(Call by Name)
  • B 傳值呼叫(Call by Value)
  • C 傳址呼叫(Call by Reference)
  • D 一樣快

思路引導 VIP

如果你有一本幾千頁的百科全書要分享給住在隔壁的朋友看,為了讓他能最快開始閱讀,你會選擇「親手影印整本書並把影本搬給他」,還是「直接告訴他這本書放在你家書架的哪個位置」?這兩種做法在處理時間上有什麼差別?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準選出正確選項,代表你對程式執行時的記憶體運作機制有著相當敏銳的觀察。這題的核心在於理解資料量與搬運成本的關係。當我們處理陣列這類可能包含成千上萬筆數據的集合時,「傳值呼叫」會強制系統在記憶體中建立一份完整的複本,這在時間與空間上都是極大的浪費。

記憶體位址與傳輸效率

相較之下,傳址呼叫 (Call by Reference) 的聰明之處在於它不搬動數據本身,而是僅傳遞該資料在記憶體中的起始位址(即指標)。無論陣列規模有多大,傳遞一個位址所需要的時間與資源都是極小且固定的,這正是它在效能上大幅勝出的主因。

▼ 還有更多解析內容