VB传值和传址的区别

2025-01-02 23:23:12
推荐回答(5个)
回答1:

传址就是把参数的地址传过去,这样在子程序中改变参数就会导致实际参数发生变化;而传值则是把实际参数拷贝一个副本传到过程里,这样在过程中更改此参数不会对实际参数发生影响.

回答2:

简单点说:
传值:就是把变量的一个复本传到函数里。
传址:就是把变量的地址传到函数里。
给你个例子:
Private Sub Form_Load()
Dim x As Integer: x = 10
Dim y As String: y = "hello"
haha x, y
Debug.Print x & vbCrLf & y
End Sub
Sub haha(x As Integer, ByVal y As String)
x = x + 1
y = y & " world"
End Sub

回答3:

VB传值是复制数据值再用和传址时直接用数据。

回答4:

sub fun (byval a as integer)
debug.print a
a=1
end sub

sub fun2(byref a as integer)
debug.print a
a=1
end sub

private sub command1_click
dim i as integer
i=0
fun i
debug.print i
i=0
fun2 i
debug.print i
end sub

回答5:

值传递:是把实参的值赋给形参。形参的变化不会影响实参,数据传递是单向的。
地址传递:是把实参的地址传递给形参,形参变化实参也跟着变化,数据传递是双向的。