在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
大概的就是这样了!