国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ByVal和ByRef(編寫ASP子程序所用到命令)

2024-05-04 11:02:56
字體:
來源:轉載
供稿:網友
ByVal 傳送參數內存的一個拷貝給被調用者。也就是說,棧中壓入的直接就是所傳的值。
ByRef 傳送參數內存的實際地址給被調用者。也就是說,棧中壓入的是實際內容的地址。被調用者可以直接更改該地址中的內容。
ByVal是傳遞值 源數據不會被修改
你可以把這個值當作自己的局部變量來使用
ByRef是傳遞地址 , 源數據可能被修改
你對這個變量的操作將對你傳入的那個變量產生影響,就像指針的感覺

實例:
復制代碼 代碼如下:
sub Add1(ByVal no as int32)
    no=no+100
end sub
sub Add2(ByRef no as int32)
    no=no+100
end sub
private sub button1_click(sender as object,e as eventargs)handles button1.click
    dim a as int32
    a=100
    Add1(a)
    msgbox ("a的值為:" & a)     '顯示:a的值為100
    Add2(a)
    msgbox ("a的值為:" & a)     '顯示:a的值為200,因為Add2中的參數no為ByRef,即
                                 '按地址傳遞,因此在Add2中對no進行修改后,將會導致
                                 '源參數a的值也被修改。
End Sub

——————————————————————————————————————
3、ByVal和ByRef
    ByVal傳遞的參數值,而ByRef傳遞的參數的地址。在這里,我們不用去區別傳指針/傳地址/傳引用的不同,在VB里,它們根本就是一個東西的三種不同說法,即使VB的文檔里也有地方在混用這些術語(但在C++里的確要區分指針和引用)
    初次接觸上面的程序二SwapPtr的朋友,一定要搞清在里面的CopyMemory調用中,在什么地方要加ByVal,什么地方不加(不加ByVal就是使用VB缺省的ByRef)
    準確的理解傳值和傳地址(指針)的區別,是在VB里正確使用指針的基礎。
    現在一個最簡單的實驗來看這個問題,如下面的程序三:
【程序三】:體會ByVal和ByRef 
復制代碼 代碼如下:
Sub TestCopyMemory()
Dim k As Long
k = 5
Note: CopyMemory ByVal VarPtr(k), 40000, 4
Debug.Print k
End Sub
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆树市| 广昌县| 汕头市| 沙田区| 葫芦岛市| 萝北县| 榆林市| 高密市| 什邡市| 万源市| 鞍山市| 建平县| 乌鲁木齐市| 中江县| 乌审旗| 资溪县| 策勒县| 阳春市| 仙居县| 奉化市| 宜春市| 信阳市| 集贤县| 荣昌县| 黎川县| 宁远县| 凌云县| 石渠县| 无为县| 南陵县| 凤阳县| 蒙自县| 高雄市| 屏东县| 德化县| 车致| 平顺县| 兴海县| 西贡区| 轮台县| 塔城市|