2.数组参数的传递 当参数是数组通过传址方式进行传递。注意: ·在实参和形参中写数组名,忽略维数的定义,但圆括号不能省。 ·被调过程可通过Lbound和Jbound函数确定实参数组的下、上界。 Lbound和Jbound函数的形式如下: {L|U}bound(数组名[,维数]) 其中:维数指明要测试的是第几维的下标值,缺省是一维数组。 例6.Z编一函数tim,求任意一维数组中各元素之积。 调用tm,求和1=广a 2=Πb 1三 Function tim(a()As'Thteger) Dim t#,i% 调用: t=1 Sub Command1_Click() For i=Lbound(a)To Ubound(a) Dim a%(1 To 5),b%(3 To 8). t=t*a(i) t1#=tim(a()) Next i t2 #tim(b()) tim =t Print t1,t2 End Function End Sub
2. 数组参数的传递 当参数是数组通过传址方式进行传递。注意: • 在实参和形参中写数组名,忽略维数的定义,但圆括号不能省。 • 被调过程可通过Lbound和Ubound函数确定实参数组的下、上界。 Lbound和Ubound函数的形式如下: {L|U}bound(数组名[,维数]) 其中:维数指明要测试的是第几维的下标值,缺省是一维数组。 例 6.7 编一函数tim,求任意一维数组中各元素之积。 调用tim,求和 Function tim(a() As Integer) Dim t#, i% t = 1 For i = Lbound(a) To Ubound(a) t = t * a(i) Next i tim = t End Function = = 5 1 1 i ai t = = 8 3 2 i i t b 调用: Sub Command1_Click() Dim a%(1 To 5),b%(3 To 8) . t1# = tim(a()) t2 #= tim(b()) Print t1, t2 End Sub
使用过程注意事项: 1.确定自定义的过程是子过程还是函数过程 函数过程名有值,子过程名无值。 2.过程中形参的个数和传递方式的确定 过程中参数的作用是实现过程与调用者的数据通信。 (1)从主调程序获得初值,值传递。 (2)将结果返回给主调程序,地址传递。 3.实参与形参结合时对应问题 个数、类型、位置、次序一一对应。 形参是值传递,对应实参可以是表达式、常量、数组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递
使用过程注意事项: 1. 确定自定义的过程是子过程还是函数过程 函数过程名有值,子过程名无值。 2.过程中形参的个数和传递方式的确定 过程中参数的作用是实现过程与调用者的数据通信。 (1)从主调程序获得初值,值传递。 (2)将结果返回给主调程序,地址传递。 3. 实参与形参结合时对应问题 个数、类型、位置、次序一一对应。 形参是值传递,对应实参可以是表达式、常量、数组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递