參數傳遞

參數傳遞

參數傳遞,是在程式運行過程中,實際參數就會將參數值傳遞給相應的形式參數,然後在函式中實現對數據處理和返回的過程,方法有按值傳遞參數,按地址傳遞參數和按數組傳遞參數。

定義

形參:指出現在Sub 和Function過程形參表中的變數名、數組名,該過程在被調用前,沒有為它們分配記憶體,其作用是說明自變數的類型和形態以及在過程中的作用。形參可以是除定長字元串變數之外的合法變數名,也可以帶括弧的數組名。

實參:實參就是在調用Sub 和Function過程時,從主調過程傳遞給被調用過程的參數值。實參可以是變數名、數組名、常數或表達式。在過程調用傳遞參數時,形參與實參是按位置結合的,形參表和實參表中對應的變數名可以不必相同,但它們的數據類型、參數個數及位置必須一一對應。  

兩者關係

1. 形參只能是變數,實參可以是常量、變數或表達式。在被定義的函式中,必須指定形參的類型。

2. 實參與形參的個數應一樣,類型應一致。字元型和整型可以互相通用。

3. 在調用函式時,如果實參是數組名,則傳遞給形參的是數組的首地址

4.實參傳遞給形參是單向傳遞,形參變數在未出現函式調用時,並不占用記憶體,只在調用時才占用。調用結束後,將釋放記憶體。執行一個被調用函式時,形參的值如果發生改變,並不會改變主調函式中的實參的值。  

5.形參如同公式中的符號,實參就是符號具體的值,在調用過程前必須得到賦值;調用過程就是實現形參與實參的結合,把實參的值通過調用傳遞給形參,相當於把值代入公式進行計算。  

方法

按值傳遞參數

按值傳遞參數時,是將實參變數的值複製一個到臨時存儲單元中,如果在調用過程中改變了形參的值,不會影響實參變數本身,即實參變數保持調用前的值不變。按值傳遞參數時,需要在參數名前加"ByVal"關鍵字。

按地址傳遞參數

按地址傳遞參數時,把實參變數的地址傳送給被調用過程,形參和實參共用記憶體的同一地址。在被調用過程中,形參的值一旦改變,相應實參的值也跟著改變。如果實參是一個常數或表達式,Visual Basic 6.0會按"傳值"方式來處理,按地址傳遞不需要"ByVal"關鍵字。  

數組傳遞參數

在VB6.0中,允許使用數組作為實參傳遞到子過程的形參中,數組傳遞必須採用地址傳遞的方式來傳遞參數。數組參數在傳遞時應注意以下兩個方面:

① 在實參和形參列表中只寫數組名,忽略維數的定義,但圓括弧不能省,當數組作為參數傳遞時,系統將實參數組的起始地址傳給過程,使形參數組也具有與實參數組相同的起始地址,若參數是多維數組,每維以逗號分隔;

② 被調過程可分別通過Lbound和Ubound函式確定實參數組的下界和上界。  

調用帶參數的函式

在調用函式時,您可以向其傳遞值,這些值被稱為參數。

這些參數可以在函式中使用。

您可以傳送任意多的參數,由逗號 (,) 分隔:

myFunction( argument1, argument2)

當您聲明函式時,請把參數作為變數來聲明:

function myFunction(var1,var2){這裡是要執行的代碼}

變數和參數必須以一致的順序出現。第一個變數就是第一個被傳遞的參數的給定的值,以此類推。

實例

點擊這裡function myFunction(name,job){alert("Welcome " +name+ ", the " +job);}


對於下述程式,試分析用傳值、傳地址、傳數組方法傳遞參數時所得的列印結果。

PROGRAM SS(input,output);

VAR

A,B:integer;

PROCEDURE P(x,y,z:integer);

begin y:=y+1;z:=z+x;

end;

BEGIN

A:=2;b:=3;

P(A+B,A,A);

writeln (‘A=‘,A);

END

解答

(1) 傳值:把實參的值計算出來傳給形參。

在調用過程P時,形參x=5;y=2;z=2

出過程P時,形參x=5;y=3;z=7

這並不把結果回送到主程式,所以結果為A=2

(2) 傳地址:實參計算出結果,把地址送形參。

設變數T=A+B(結果為5)。執行時把T、A、A的

地址(設為addr1,addr2,addr2)送給形參:

x=daar1,y=addr2,z=addr2。

T的地址addr1即x→T(5)

A的地址addr2即y→A(2)

A的地址addr2即z→A(2)

執行過程P即為:①y↑:=y↑+1;②z↑:=z↑+x↑

所以,①為A:=A+1=3

②為A:=A+T=8。 因此,最後A=8.

(3) 傳數組:相當於執行 A:=2;B:=3; A:=A+1;A:=A+(A+B)

writeln(‘A=‘,A);

所以,結果為A=9。  

相關詞條

相關搜尋

熱門詞條

聯絡我們