加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB中的传值和传址,形式参数与实际参数

发布时间:2020-12-17 07:36:39 所属栏目:百科 来源:网络整理
导读:在vb中调用函数或过程,传递参数都有两种方式——传址和传值。其中VB默认是以传址方式传递参数。 一个是Byval,一个是ByRef,前面的表示传值,后面的则表示传址。传值使得子程序调用实际参数后,对实际参数原来的值不发生影响,但传址就不同了,形式参数在子

在vb中调用函数或过程,传递参数都有两种方式——传址和传值。其中VB默认是以传址方式传递参数。


一个是Byval,一个是ByRef,前面的表示传值,后面的则表示传址。传值使得子程序调用实际参数后,对实际参数原来的值不发生影响,但传址就不同了,形式参数在子程序中变换的过程,直接影响实际参数值的大小。


下面通过一个小例子来形象的说明一下两者的区别
Function add(Byval a  as integer,Byval b as integer)
dim c as integer
a=a+1
b=b+1
c=a+b
add c
end Function

上面的是传值,也就是当调用的时候,例如Add(a,b)这里实际上是等同于Add(a值,b值)如:a=12:b=3,调用Add(a,b)时,系统会把数值12和3传给函数“Add”结果a,b原值未变。但是传址就不一样了同样的功能,我把它改成传址时的模式:


Function add(ByRef a as integer,ByRef b As integer)
Dim c As Integer
a=a+1
b=b+1
c=a+b
add=c
End Function


这个时候,如果执行下面的程序段:
a=12:b=3
Add(a,b)

Print a & " " & b


你会发现他们的值变了。因为传值的时候是将数据给函数,这样函数无法对a,b这种数据进行修改。形象一点:你去查分,别人把分数读出来给你听,就相当于传值。别人把分数表给你看,(这个时候你可以读取分数,也可以改分数)就是传址。

大概的就是这样了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读