(转载)VB中ByVal与ByRef的区别
ByVal是按值传送,在传的过程中不会改变原来的值,仅仅传送的是一个副本,
而 ByRef相反,从内存地址来说,后者是同一个内存地址。
ByVal 与 ByRef(默认值)
这两个是子过程的参数传递时,指定参数按什么传递的
ByVal(按值传递)
ByRef(按地址传递)
具体可看下面例子:
Dim A as integer,B as integer
A=1
B=2
Call fun01(A,B)
Print A,B '得到的结果是2 3 (形参的改变影响到了实参,即现在A=2,B=3)
Call fun02(A,B)
Pring A,B '得到的结果跟上面的一样,2 3(形参的改变并没有影响到这个实参)
Sub fun01(I as integer,J as integer) '默认,则按址传递
i=i+1
J=J+1
End Sub
Sub fun02(ByVal I as integer,ByVal J as integer) '按值传递
i=i+1
J=J+1
End Sub