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
|