VB中按值传递和引用传递区别最好是程序实例说明下
1个回答
展开全部
'传值函数示例,俩形参byval
Function test1(ByVal a As Long, ByVal b As Long) As Long
a = a + b
test1 = a
End Function
'传址函数示例,第一个形参byref
Function test2(ByRef a As Long, ByVal b As Long) As Long
a = a + b
test2 = a
End Function
'测试
Private Sub Form_Click()
Dim a As Long
c = 5
Print test1(c, 3), c '结果为8 5
Print test2(c, 3), c '结果为8 8
End Sub
传值和传址是函数参数传递的两种方式;
1、传值,顾名思义是把参数的值传递给函数供调用,只当借用,无权改变参数原来的值,调用结束后参数值不变;
2、传址,即是把参数变量的地址传给函数,调用过程中如果函数该形参的值有所变动,势必引起实参(被传的变量)值的变动,因为它们共享一片内存地址。
函数示例一,俩参数传值调用,c的值不变为5;
函数示例二,第一个形参传址调用,形参a的值被改变,所以实参c亦改变,结果为8。
Function test1(ByVal a As Long, ByVal b As Long) As Long
a = a + b
test1 = a
End Function
'传址函数示例,第一个形参byref
Function test2(ByRef a As Long, ByVal b As Long) As Long
a = a + b
test2 = a
End Function
'测试
Private Sub Form_Click()
Dim a As Long
c = 5
Print test1(c, 3), c '结果为8 5
Print test2(c, 3), c '结果为8 8
End Sub
传值和传址是函数参数传递的两种方式;
1、传值,顾名思义是把参数的值传递给函数供调用,只当借用,无权改变参数原来的值,调用结束后参数值不变;
2、传址,即是把参数变量的地址传给函数,调用过程中如果函数该形参的值有所变动,势必引起实参(被传的变量)值的变动,因为它们共享一片内存地址。
函数示例一,俩参数传值调用,c的值不变为5;
函数示例二,第一个形参传址调用,形参a的值被改变,所以实参c亦改变,结果为8。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询