Private Sub Command2_Click()
x = 8: y = 2
Call fun1((x), y)
Print x, y
End Sub
Private Sub fun1(x, y)
S = x
x = S / y
y = S Mod yEnd Sub
和
Private Sub Command2_Click()
x = 8: y = 2
Call fun1(x, y)
Print x, y
End Sub
Private Sub fun1(x, y)
S = x
x = S / y
y = S Mod yEnd Sub
print 出来的植分别是8,0和4,0
Call fun1(x, y)和Call fun1((x), y) 有什么区别啊/ 是不是前者传地址后者传值啊??
谢谢大家
x = 8: y = 2
Call fun1((x), y)
Print x, y
End Sub
Private Sub fun1(x, y)
S = x
x = S / y
y = S Mod yEnd Sub
和
Private Sub Command2_Click()
x = 8: y = 2
Call fun1(x, y)
Print x, y
End Sub
Private Sub fun1(x, y)
S = x
x = S / y
y = S Mod yEnd Sub
print 出来的植分别是8,0和4,0
Call fun1(x, y)和Call fun1((x), y) 有什么区别啊/ 是不是前者传地址后者传值啊??
谢谢大家
Sub子过程,所以二者都应该是按地址传递.
接上面 经过我单步调试发现:
前者在实参x传递给形参时还是8,在funl过程中x最后计算得到的值也还是4,但是此时主调程序中的x还是8,而不是4,这就说明实参与形参并不是指向同一个内存单元,所以Call fun1((x), y)中(x)的括号的作用是将按地址传递参数的方式改变为按值传递.(即在函数定义之后重新确定参数传递方式,方法很灵活!)