形參:
全稱為「形式引數」是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳遞的引數。
實參:實參,actual parameters,全稱為"實際引數"是在呼叫時傳遞給函式的引數,即傳遞給被呼叫函式的值。實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
泛型:
泛型,即「引數化型別」。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。區別:泛型的本質是為了引數化型別(在不建立新的型別的情況下,通過泛型指定的不同型別來控制形參具體限制的型別)。也就是說在泛型使用過程中,操作的資料型別被指定為乙個引數,這種引數型別可以用在類、介面和方法中,分別被稱為泛型類、泛型介面、泛型方法。
1、形參變數只有在被呼叫時才分配
記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。
函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。
2、 實參可以是
常量、變數、
表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使引數獲得確定值。
3、實參和形參在數量上,型別上、順序上應嚴格一致,否則就會發生
型別不匹配的錯誤。
4、在一般
傳值呼叫的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在
函式呼叫過程中,形參值發生改變,而
實參中的值不會變化。而在
引用呼叫的機制當中是將實參引用的位址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
對照:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int
main()
int
s(
int
n)
本程式中定義了乙個函式 s,該函式的功能是求∑ni 的值。在
主函式中輸入n 值,並作為
實參,在呼叫時傳送給s 函式的形參量n( 注意,本例的形參變數和實參變數的
識別符號都為n,但這是兩個不同的量,各自的
作用域不同)。在主函式中用printf 語句輸出一次n 值,這個n 值是實參n 的值。在函式s 中也用printf 語句輸出了一次n 值,這個n 值是形參最後取得的n 值。從運**況看,輸入n 值為100。即實參n 的值為100。把此值傳給函式s 時,形參n 的初值也為100,在執行函式過程中,形參n的值變為5050。返回
主函式之後,輸出
實參n 的值仍為100。可見實參的
傳值呼叫值不隨形參的變化而變化。
java 形參 實參
實參 直接值傳遞 string 八大基礎資料型別 形參是定義方法的時候,該方法所攜帶的引數,不如說現在有乙個方法 public void printinfo string info 此處info就是乙個形參,它是string型別的。實參是你在呼叫方法的時候,給這個方法傳遞的引數值,比如說有這麼乙個語...
形參和實參
函式的引數分為形參和實參兩種。形參 出現在函式定義中,在整個 函式體內都可以使用,離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作 資料傳送 發生函式呼叫 時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的 資料傳送 函式的形參...
java形參實參
摘自 一 基本資料型別 傳值,方法不會改變實參的值。如int,string 二 物件型別引數 傳引用,方法體內改變形參引用,不會改變實參的引用 但有可能改變實參物件的屬性值 string陣列 1 方法體內改變形參引用,但不會改變實參引用 實參值不變。2 方法體內,通過引用改變了實際引數物件的內容,注...