在本节我们介绍一般变量、数组元素、数组名作为函数参数的几种情况。输入并运行以下代码:
Sub fun(a As Long)
a += 1
Print a
End Sub
Sub 游戏执行过程(hWndForm As hWnd)
Dim x As Long = 1
Print x
fun(x)
Print x
End Sub
程序运行后输出:
1
2
1
程序从主函数开始运行,首先定义变量x并初始化为1,print x 输出1。
接着执行fun(x) 进入fun()函数,为变量a分配内存空间,将实际参数x的值赋给形式参数a。执行fun()函数内部的语句a+=1 ,print a 输出2。fun()运行结束后,收回变量a的内存空间。
回到主函数中,x的值没有改变,print x 仍然输出1。
一般变量作为函数的参数,这种调用方式称为单向值调用,函数内形式参数的值改变不会影响主函数中对应实际参数的值。
以下代码将数组元素传递给函数:
Sub fun(i As Long,j As Long )
i += 1
j+=1
End Sub
Sub 游戏执行过程(hWndForm As hWnd)
Dim x(1) As Long = {1,2}
Print x(0),x(1)
fun(x(0),x(1))
Print x(0),x(1)
End Sub
程序运行后输出:
1 2
1 2
数组元素作为函数实际参数的用法和一般变量作为实际参数的用法一样,都是单向的值传递。
为了能在函数中修改实际参数的值,我们可以把数组名作为参数进行传递。输入并运行以下代码:
Sub fun(a() As Long)
a(0) = 3
a(1) = 4
End Sub
Sub 游戏执行过程(hWndForm As hWnd)
Dim x(1) As Long = {1,2}
Print x(0),x(1)
fun( x() )
Print x(0),x(1)
End Sub
程序运行后输出:
1 2
3 4
在下一节我们将讲解利用数组作为函数的参数,实现圆圈旋转的迭代传播。
评论一下?