在vb中,提到過程和和函式,一定少不了引數,引數傳遞時過程中非常重要的問題。通過實際引數和形式引數的傳遞可以實現呼叫過程和被呼叫過程之間的資訊交換。在這裡首先要明白實參和形參。舉個例子吧:
假設定義乙個過程:
sub employee(num as string,name as string,age as integer)——>形式參數列
則呼叫這乙個過程:
callemployee( bm , "zhangjie" , 20 )——>實際引數
在visual basic中的引數傳遞有兩種傳遞方式:按值傳遞和按位址傳遞。與兩種方式相對應,宣告通用過程時,參數列中形參的定義格式可擴充套件為:[byval|byref]《變數名》[()][as 型別]
一、按值傳遞引數(byval)
byval是把記憶體數值的拷貝給程式,所以改變的只是拷貝,記憶體原來的值是不會改變的。
byval :表示該引數是按值方式傳遞的。 你在函式中修改此引數的值不會造成呼叫這個函式的函式的變數值的改變。
舉例:按值傳遞引數
private sub command1_click()
dim x as integer
x = 6
print "呼叫sub過程之前x="; x
call test(x)
print "呼叫sub過程之後x="; x
end sub
sub test(byval m as integer)
m = m + 5
end sub
執行結果如下:
二、按位址傳遞引數(byref)
byref是把記憶體位址告訴程式,所以改變的直接就是記憶體中的數值,vb中預設的引數傳遞方式是byref.
byref :表示該引數按引用方式傳遞。 在函式中修改此引數的值會造成實參的值發生改變。
private sub command1_click()
dim x as integer
x = 6
print "呼叫sub過程之前x="; x
call test(x)
print "呼叫sub過程之後x="; x
end sub
sub test(byref m as integer)
m = m + 5
end sub
執行結果如下:
VB中ByVal與ByRef有什麼區別
byval是值傳遞 byref是位址傳遞。在交換函式裡單純交換值時沒有效果的,需要交換對應的位址。主要區別 1 引用引數 ref 在可以作為引用引數在函式成員呼叫中傳遞之前,必須已明確賦值,而輸出引數 out 在可以作為輸出引數在函式成員呼叫中傳遞之前不一定要明確賦值,在該函式成員正常返回前都必須已...
VB中Byval關鍵字的使用。
在visual basic中,按值傳遞方式通過關鍵字 byval by value 來實現。也就是說,在定義通用過程時,如果形參前面有關鍵字byval,則該引數用傳值方式傳送,否則即以引用 即按位址 方式傳遞。這裡的形參x前有關鍵字byval,呼叫時以按值方式傳遞實參。也就是說,外部的變數數值不會因...
mysql的 和 的區別 和 的區別
他們之間的區別用最直接的話來說就是 相當於對資料 加上 雙引號,相當於直接顯示資料。1 對傳入的引數視為字串,也就是它會預編譯select from user where name 比如我傳乙個csdn,那麼傳過來就是select from user where name csdn 2 將不會將傳入...