微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在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这种数据进行修改。形象一点:你去查分,别人把分数读出来给你听,就相当于传值。别人把分数表给你看,(这个时候你可以读取分数,也可以改分数)就是传址。

大概的就是这样了!

原文地址:https://www.jb51.cc/vb/256840.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐