VB中数据传递的传值和传址的区别

不同的数据传递会对编程产生怎样的不同影响
2024-12-28 19:10:05
推荐回答(3个)
回答1:

看例子最好。
可以参考下面已解决的问题,有详细的例子分析:
http://zhidao.baidu.com/question/22259651.html?si=4
http://zhidao.baidu.com/question/26137604.html?si=1

简单说,就是:
有ByVal关键字,即传值,不改变实参的值。[另外复制了一份变量值给过程或函数使用]
而有ByDef关键字(默认),即传址,会改变实参的值。 [直接调用变量作为参数]

回答2:

简单点说,传址过去的话其值可以被该函数或过程改变,传值则不会。

Private Sub Command1_Click()
Dim a As Integer
a = 3
Call test(a)
Debug.Print a '这时结果为5
End Sub

Sub test(ByRef chgA As Integer)
chgA = 5
End Sub

回答3:

我的理解是:byval在传值时,内存的地址新的
bydef则在原来的位置重新刷新数据