VB参数参数传递中,传值与传址的区别
发布网友
发布时间:2022-03-25 19:38
我来回答
共3个回答
热心网友
时间:2022-03-25 21:07
定义的区别:Byval和Byref
Private sub 传值(Byval a As Integer)
a=5
End Sub
Private sub 传址(ByRef a As Integer)
a=5
End Sub
调用上的区别:
Mya = 6
call 传值(Mya) '调用传值
Print Mya '结果不变为6
call 传址(Mya) '调用传址
Print Mya '结果变为5
简单的理解:传值情况,外部变量与自定义过程内的变量是两个
传址情况,外部变量与自定义过程内的变量就是同一个
热心网友
时间:2022-03-25 22:25
传址参数在子过程里面的改变会影响过程外的对应参数,传值则不会,VB里面默认是传址也就是byref的
比如:sub f(byref a as integer)
a=1
end sub
主函数中:f i,此时i=1
而sub f(byval a as integer)
a=1
end sub
主函数中:f i,此时i的值没变
热心网友
时间:2022-03-26 00:00
传址(地址传过去):这个过程变化全部变化
传值(只传送值):不同的过程相同名的变量值会不同