形參和實參的區別

2021-06-17 00:39:48 字數 1330 閱讀 6992

形參(parameter,形式引數)出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。
實參(argument,實際引數)出現在主調函式中,進入被調函式後,實參變數也不能使用
形參和實參的功能是作資料傳送。發生函式呼叫時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送
形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時, 即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。 函式呼叫結束返回主調函式後則不能再使用該形參變數。

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

實參和形參在數量上,型別上,順序上應嚴格一致, 否則會發生「型別不匹配」的錯誤。

函式呼叫中發生的資料傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製乙份,在該函式執行結束的時候形參被釋放,而實參內容不會改變。而如果函式的引數是指標型別變數,在呼叫該函式的過程中,傳給函式的是實參的位址,在函式體內部使用的也是實參的位址,即使用的就是實參本身。所以在函式體內部可以改變實參的值。

對於下面這個方法:
1.public static void showtwice(string p) 

2.

這個方法中的p就是乙個形式引數的變數名,我們寫這個方法時根本不知道p的實際值是什麼,但是這個方法都會將這個值輸出到螢幕兩次為了呼叫這個方法,我們在main方法中寫如下**:
1.public static void main(string args) 

2.

對比可知,"conquer it " 這個字串就是實際引數給了showtwice方法,完成了這個方法的乙個實際呼叫,為了再完成乙個說明。可以把上面這個呼叫寫成如下:
01.public static void main(string args) 

02.

這裡,p1就只是起乙個替代「conquer it」的作用。相對於形式引數的變數名p,作為實際引數傳入的變數名p1不起任何作用。

形參和實參的區別

color red 形參 color 全稱為 形式引數 是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳遞的引數。形參的作用是實現主調函式與被調函式之間的聯絡,通常將函式所處理的資料,影響函式功能的因素或者函式處理的結果作為形參。沒有形參的函式在形參表的位置應該寫void.mai...

實參和形參的區別

本文 實參 argument 全稱為 實際引數 是在呼叫時傳遞給函式的引數.實參可以是常量 變數 表示式 函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。形參 parameter 全稱為 形式引數 由於它...

形參和實參的區別

一 主體 1 實參 在呼叫有參函式時,函式名後面括號中的引數為 實際引數 2 形參 不是實際存在變數,又稱虛擬變數 在被呼叫時才分配記憶體單元 二 目的 1 實參 可以是常量 變數或表示式,無論實參是何種型別的量,在進行函式呼叫時,都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等...