前言

函式間的資料除了可使用return 敘述傳回資料外,資枓還可以透過引數來傳遞,引數的傳遞方式有「傳值呼叫」(call by value) 和「參考呼叫」(call by reference) 兩種。

傳值呼叫

函式呼叫時,若採用「傳值呼叫」。在呼叫自定函式時,呼叫敘述中的實引數傳入資料給自定函式的虛引數,無論在自定函式內虛引數內容是否有改變,都不影響原呼叫敘述實引數的值內容。因引數傳遞用傳值呼叫時,編譯器會複製一份實引
數的值給虛引數使用,兩者占用不同的記憶體位址。當虛引數的位址資料異動時,
不會影響到實引數的位址資料,也就是引數間的資料傳遞是單行道,即

呼叫敘述實引數的資料内容→自定函式虚引數

參考呼叫

函式呼叫時,若採用「參考呼叫」。編譯器會將實引數和虛引數所占用的記憶體位址設為一樣,如此引數間的資料傳遞是雙向道,即

呼叫敘述實引數的資料內容↔自定函式虛引數

當呼叫敘迹中的實引數傳入資料給自定函式的虛引數,若自定函式內虛引數內容有改變,則原呼叫敘述實引數的內容也跟著變動。傳遞的資料如果是整個串列,其傳遞引數的方式就是屬於參考呼叫。


相關主題與延伸閱讀