VB参数参数传递中,传值与传址的区别
展开全部
定义的区别: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
简单的理解:传值情况,外部变量与自定义过程内的变量是两个
传址情况,外部变量与自定义过程内的变量就是同一个
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
简单的理解:传值情况,外部变量与自定义过程内的变量是两个
传址情况,外部变量与自定义过程内的变量就是同一个
展开全部
传址参数在子过程里面的改变会影响过程外的对应参数,传值则不会,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的值没变
比如: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的值没变
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传址(地址传过去):这个过程变化全部变化
传值(只传送值):不同的过程相同名的变量值会不同
传值(只传送值):不同的过程相同名的变量值会不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询