VB中按值传递和按址传递有什么区别,最好能举例说明
2013-03-24
展开全部
VB一般情况下只有按值传递
如有参数 A,它的值为5,它在内存中的地址为 H879
dim A as int
A=5
Call XXX(A)
如果是按值传递:传递过去的是一个跟原参数一致的内容,即传过去的是5,在XXX过程中修改该值,不会影响原值.
按址传递:传递过去的是参数本身的地址H879,并非实值,过程中获取该参数的内容是从H879这个内存中的,同时更变该参数的值,也是直接修改地址H879中的内容,导致过程外的A变量的值也会更变.
如有参数 A,它的值为5,它在内存中的地址为 H879
dim A as int
A=5
Call XXX(A)
如果是按值传递:传递过去的是一个跟原参数一致的内容,即传过去的是5,在XXX过程中修改该值,不会影响原值.
按址传递:传递过去的是参数本身的地址H879,并非实值,过程中获取该参数的内容是从H879这个内存中的,同时更变该参数的值,也是直接修改地址H879中的内容,导致过程外的A变量的值也会更变.
展开全部
按址传递到函数的参数,在函数里面改变该参数后,对应的变量也被改变。
按值传递 的不会改变。
Private Sub Command1_Click()
Dim A As String
A = "调用前"
Call 按址传递(A)
MsgBox A
End Sub
Private Sub Command2_Click()
Dim A As String
A = "调用前"
Call 按值传递(A)
MsgBox A
End Sub
Function 按址传递(ByRef X As String)
X = "按址传递"
End Function
Function 按值传递(ByVal X As String)
X = "按值传递"
End Function
按值传递 的不会改变。
Private Sub Command1_Click()
Dim A As String
A = "调用前"
Call 按址传递(A)
MsgBox A
End Sub
Private Sub Command2_Click()
Dim A As String
A = "调用前"
Call 按值传递(A)
MsgBox A
End Sub
Function 按址传递(ByRef X As String)
X = "按址传递"
End Function
Function 按值传递(ByVal X As String)
X = "按值传递"
End Function
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询