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

前端之家收集整理的这篇文章主要介绍了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这种数据进行修改。形象一点:你去查分,别人把分数读出来给你听,就相当于传值。别人把分数表给你看,(这个时候你可以读取分数,也可以改分数)就是传址。

大概的就是这样了!

猜你在找的VB相关文章