ByVal是按值传递
就是不改变地址里的变量值
而ByRef是改变地址里的变量值的
ByVal传递的只是一个值 向一个地址传递一个值进去
而ByRef的形参和实参共用一个储存单元 因为他们是在一个地址里的
一般ByVal API函数用的比较多
不想改变原地址里的变量值的时候用ByVal
举个例子吧
private sub form_load
dim x as integer
x = 10
aa(x)
print x
end sub
sub aa(ByVal x as integer)
x = 20
end sub
最后的结果是10
也就是形参并影响实参的值
如果换成下面的写法
private sub form_load
dim x as integer
x = 10
aa(x)
print x
end sub
sub aa(Byref x as integer)'Byref关键字是默认的
x = 20
end sub
这次的结果是20
相当于c中的
void aa(int * x)
{
*x = 20;
}
调用: aa(&x);