好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > vbs(asp) ByVal ByRef函數調用使用說明

vbs(asp) ByVal ByRef函數調用使用說明

熱門標簽:天津智能外呼系統排名 智云億呼電話機器人 外呼系統說話聲音小怎么辦 機器人打電銷適用于美業嗎 龍巖400電話申請 企業400電話辦理價錢低 外呼系統群 墨西哥地圖標注app 上海辦理400電話選號

1、ByVal傳值:一種將參數值而不是將地址傳遞給過程的方式,這就使過程訪問到變量的復本。結果,過程不可改變變量的真正值。 
2、ByRef傳值:一種將參數地址而不是將值傳遞給過程的方式,這就使過程訪問到實際的變量。結果,過程可改變變量的真正值。除非另作說明,否則按地址傳遞參數。  
3、系統默認的是ByRef傳值

例子:

復制代碼 代碼如下:

SCRIPT LANGUAGE="vbScript">
dim a
a=0
document.write "a=0"
document.write "br/>sub change(byref ar)br/>"
change a
document.write a
a=0
document.write "br/>sub change2(ByVal ar)br/>"
change2 a
document.write a
a=0
document.write "br/>sub change3( ar)br/>"
change3 a
document.write a
a=0
document.write "br/>function change4(byref ar)br/>"
change4 a
document.write a
a=0
document.write "br/>function change5(ByVal ar)br/>"
change5 a
document.write a
a=0
document.write "br/>function change6( ar)br/>"
change6 a
document.write a
a=0
sub change(byref ar)
ar=111
end sub
sub change2(ByVal ar)
ar=222
end sub
sub change3( ar)
ar=333
end sub
function change4(byref ar)
ar=444
end function
function change5(ByVal ar)
ar=555
end function
function change6( ar)
ar=666
end function
/SCRIPT>

=======================
結果:
a=0
sub change(byref ar)
111
sub change2(ByVal ar)
0
sub change3( ar)
333
function change4(byref ar)
444
function change5(ByVal ar)
0
function change6( ar)
666
說明vbs默認是byRef,這點和VB一樣, 按地址。

再給出一個小例子,大家運行看效果!
復制代碼 代碼如下:

%
Dim i,j,p,m
i = 10
j = 12
Response.Write i"******"j"br>"
Call Fun2 (i,j)
Response.Write i"******"j"br>"
i = 10
j = 12
Call Fun (i,j)
Response.Write i"*******"j"br>"
Function Fun2 (a,b)
a = 5
b = 6
Fun2 = 0
End Function
Function Fun (ByVal a,ByRef b)
a = 5
b = 6
Fun = 0
End Function
%>

通過上面的例子你可以發現:
1、ByVal傳值沒有改變全局變量的值。
2、ByRef傳值改變了全局變量的值。
3、系統默認的是ByRef傳值。

至于應該在什么時候使用嗎?這就要看自己的實際情況了!

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


vb6的說明
啥也不說了,接題:
復制代碼 代碼如下:

Function Test(a)
a = a + 1
End Function

c = 1
'------------------------------------
'問題:
' 請說出分別調用下面四種方法的結果?
'------------------------------------
'方法一
Test c

'方法二
'Test (c)

'方法三
'Test (c+1)

'方法四
'Call Test(c)

msgbox c

正確答案:分別為:2 , 1 , 1 , 2
你全答對了沒?全答對了你可以直接Return了,沒答對的話繼續往下看。

追溯
幾乎所有編程語言的函數傳參都有傳值和傳引用之分,我們的VB老兄也不例外,而且,她選擇了傳引用作為其默認方式,甚者,她對所有變量類型不加挑剔,全部默認采用傳引用的方式,包括整型變量(int)。這也是華山論劍敗北的最根本原因。
你可以在參數前使用ByVal(傳值)和ByRef(傳引用)關鍵字指明參數傳遞的方式:

'傳值方式,c值不變
復制代碼 代碼如下:

Function Test(ByVal a)
a = a + 1
End Function
c = 1
Test c
'c = 1

'傳值方式,c值不變
復制代碼 代碼如下:

Function Test(ByRef a)
a = a + 1
End Function
c = 1
Test c
'c = 2

領悟
通常,VB6的Function函數調用方法有兩種:
Func Params
如方法一:Test c

Call Func(Params)
如方法四:Call Test(c)


因此,論劍中的方法一和方法四實質上是一樣的,參數c都是通過默認的傳引用方式傳遞,執行完函數Test后,c的值會隨之改變。因此方法一和方法四的結果為:2
然而,江湖中似乎還流傳著這樣一種調用方法:


Func(Expression)
如方法二:Test(c) 和 方法三:Test(c+1)

注 意到沒有,括號中的內容不是Params,而是Expression,是一個表達式,而表達式的計算結果會被保存到一個臨時變量中傳入函數體,函數調用完畢 后臨時變量也隨之銷毀。因此,調用方法二時,表達式(c)的計算結果為1,保存到了一個臨時變量傳入函數Test中,函數執行完成后,原來的c值并不發生 改變。同理,方法三的調用更加顯得直觀一些,(c+1)的表達式運算結果被保存到了一個臨時變量傳入Test,原來的c值并不發送改變。所以,方法二和方 法三的結果為:1

出師
總結如下:
VB6和VBS中的函數參數默認是ByRef類型的。

Test(c)方法調用時,VB會認為你傳遞的不是一個變量,而是一個表達式:(c) ,這個表達式運算結果,雖然與c值相同,但卻是保存在一個臨時變量中,這個臨時變量的改變不會影響到原來的變量c

您可能感興趣的文章:
  • JavaScript 函數參數是傳值(byVal)還是傳址(byRef) 分享
  • Asp中通過簡單的例子理解下ByVal和ByRef的用法
  • 關于 byval 與 byref 的區別分析總結
  • asp中Byval與Byref的區別
  • ByVal和ByRef(編寫ASP子程序所用到命令)
  • .Net 下區別使用 ByRef/ByVal 的重要性 分享

標簽:承德 阜新 黃山 鄂爾多斯 麗水 錫林郭勒盟 齊齊哈爾 青島

巨人網絡通訊聲明:本文標題《vbs(asp) ByVal ByRef函數調用使用說明》,本文關鍵詞  vbs,asp,ByVal,ByRef,函數,調用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《vbs(asp) ByVal ByRef函數調用使用說明》相關的同類信息!
  • 本頁收集關于vbs(asp) ByVal ByRef函數調用使用說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 琪琪午夜三级伦电影| 国产熟妇???码视频户外直播| 嗯嗯嗯嗯好爽| 777777农村一级毛片| 高湖喷水| 动漫美女到爆漫画网站| 99免费精品| 国产欧美日韩精品一区二区三区| 翁熄合欢| 天天躁夜夜躁躁av天天爽色欲小说| 办公室强行丝袜秘书啪啪| 黄色影片免费在线观看| 猛犸敢死队| 动态图第960期XXOO| 动漫美女扣逼| 色翁荡媳500部小小说| 午夜精品久久久久99热蜜桃导演| 黄乱色伦短篇小说| 一边吃奶一边躁狂| 安妮·海瑟薇r级| 日韩电影一区| 欧洲猛男与美女在线播放| 看一级特黄a大片国产| 中文字幕 HD高清 伦理| 在线乱理片免费看| 日本男女动态图| 黄站无毒不卡秒播网站免费观看| 厕所少年高清动漫无删减| 抽搐一进一出视频免费| 动感女郎| 毛巾可以做一个假b教程| 私密人体艺木| 国产69精品久久久久深夜勾搭 | 亚洲无人区码一码二码三码的特点 | 丝袜放荡人妻邻居| 国产欧美精品AV大屁股| 91麻豆传传媒波多野衣久久看| 蜜乳AV一区二区三区视频网址 | 狼色精品人妻在线视频网站| 我脱了护士的湿润三角裤| 国产综合免费视频|