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

传址(地址传过去):这个过程变化全部变化
传值(只传送值):不同的过程相同名的变量值会不同
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com