實際參數

實際參數簡稱“實參”。在調用有參函式時,函式名後面括弧中的參數稱為“實際參數”,實參可以是常量、變數或表達式。

簡介

在調用有參函式時,主調函式和被調函式之間有數據傳遞關係。在主調函式中調用一個函式時,函式名後面括弧中的參數稱為“實際參數”(簡稱“實參”)。

實參可以是常量、變數或表達式, 無論實參是何種類型的量,在進行函式調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

數據傳遞

在調用函式過程中,系統會把實參的值傳遞給被調用函式的形參。或者說,形參從實參得到一個值。該值在函式調用期間有效,可以參加該函式中的運算。

在調用函式過程中發生的實參與形參間的數據傳遞,常稱為“虛實結合”。

函式調用過程

1、函式的形參列於函式聲明中,在函式定義的函式體內使用。在未出現函式調用時,形參不占記憶體中的存儲單元;當函式調用時,形參(任何種類的)是一類將被填充的空白或是占位符。

2、將實參的值傳遞給形參。當函式被調用時,實參列在函式名後面的括弧里。執行函式調用時,實參被傳遞給形參。

3、在執行函式期間,由於形參已經有值,可以利用其進行相關運算。

4、通過return語句將函式值帶回到主調函式。

5、調用結束,形參單元被釋放。實參單元仍保留並維持原值(值傳遞)。

傳遞機制對比

函式參數值傳遞

在值傳遞過程中,被調函式的形式參數作為被調函式的局部變數在棧中分配記憶體空間,主調函式的實際參數的值被複製並存入該記憶體空間,形成實際參數的一個副本。

值傳遞的特點是,被調函式對形式參數的任何操作都不會影響主調函式中的實際參數變數。

函式參數地址傳遞

在地址傳遞過程中,被調函式的形式參數仍然在被調函式的棧中分配記憶體空間,但此時是將主調函式實際參數的地址存入該記憶體空間。被調函式對形式參數的任何操作都被處理成間接定址,即通過棧中存放的地址訪問主調函式中的實參變數。

地址傳遞的特點是,被調函式對形式參數的操作都影響主調函式中的實參變數。

函式參數引用傳遞

在引用傳遞過程中,被調函式的形式參數是對主調函式中實際參數的引用(C++引用,別名),形式參數和實際參數對應相同的記憶體空間。被調函式對形式參數進行操作,就相當於對實際參數進行操作。

相關詞條

相關搜尋

熱門詞條

聯絡我們