Private Sub Form_click()
Dim x As Integer, y As Integer, z As Integer
x = 1: y = 2: z = 3
Call sub1(x, x, z)
Call sub1(x, y, y)End SubPrivate Sub sub1(x As Integer, y As Integer, z As Integer)
Dim i As Integer
x = 3 * z
y = 2 * z
z = x + y
Print x, y, z
End Sub
为什么输出的是6,6,12与6,10,10啊?
能不能解释一下啊?
还有在y前面加上byval会怎么样?按值传递。
byval与byref我也看了很多遍,能否请哪位大牛再帮忙解释一下,加深我的印象。
Dim x As Integer, y As Integer, z As Integer
x = 1: y = 2: z = 3
Call sub1(x, x, z)
Call sub1(x, y, y)End SubPrivate Sub sub1(x As Integer, y As Integer, z As Integer)
Dim i As Integer
x = 3 * z
y = 2 * z
z = x + y
Print x, y, z
End Sub
为什么输出的是6,6,12与6,10,10啊?
能不能解释一下啊?
还有在y前面加上byval会怎么样?按值传递。
byval与byref我也看了很多遍,能否请哪位大牛再帮忙解释一下,加深我的印象。
第一次 call sub1(x,x,z) ------call sub1(1,1,3)
x=3*3=9,注意,主程序中x也是9了;
y=2*3=6,注意,主程序中x变为6了;为什么x是6呢?因为,调用sub1时,第二个参数传入的x;
z=x+y实际上是z=x+x,这两个x都是指主程序中的x,此时x=6,所以z=12
要注意子程序的y是指向主程序中的x。
第二次 call sub1(x,y,y) ------call sub1(6,2,2)
以下自己看吧至于byval是比较简单的,就是子程序和主程序中的变量没有关系