在定义过程时,数组可以作为形参使用。形参数组对应的实参也是数组,数据类型与形参一致。实参表中的数组不需要用括号。过程传递数组只能按地址传递,形参与实参指向同一段内存单元。在过程中,如果对形参数组元素进行了修改,当返回调用过程时,对应的实参数组也随之发生变化。
【例7-7】编写过程,以数组作为参数,实现以下功能。
1)一维数组赋初值。
2)一维数组输出。
3)一维数组元素由小到大排序。
分析:数组作为参数只能采用地址传递方式。
赋初值(输入)过程实现如下。
输出过程实现如下。
排序过程实现如下。
在Command1的Click事件过程中定义两个数组,验证上面3个过程,代码如下。
运行结果如图7-11所示。
作为过程和函数应该具有通用性,能对一维数组进行初始化,就应该能对任意一维数组进行初始化,无论数组的下标界限是多少。因为在过程内无法预先获知实参数组的下标界限,在过程中不能具体指定控制下标的变量i,j的范围,要根据实参数组的界限来定,所以在过程体中使用LBound函数和UBound函数,来动态检测数组下标范围,这样就增加了过程的通用性。
图7-11 一维数组作为形参
●LBound函数
功能:返回指定数组维度的最小可用下标。
语法:
arrayname:必选,指定数组变量的名称,遵循标准的变量命名约定。
[dimension]:可选,类型为Variant(Long)。指定返回下界的维度,1表示第一维,2表示第二维,其余类推。如果省略dimension,则默认为1。
例如:
(www.xing528.com)
LBound语句返回值如下。
●UBound函数
功能:返回指定数组维度的最大可用下标。
语法:
arrayname:必选,指定数组变量的名称,遵循标准的变量命名约定。
[dimension]:可选,类型为Variant(Long)。指定返回下界的维度,1表示第一维,2表示第二维,其余类推。如果省略dimension,则默认为1。
例如:
UBound语句返回值如下。
【例7-8】编写过程,以数组作为参数,实现以下功能。
1)二维数组赋初值。
2)二维数组输出到窗体。
分析:数组作为参数只能采用地址传递方式。
赋初值(输入)过程实现如下。
输出过程实现如下。
在Command1的Click事件过程中定义两个数组,验证上面3个过程,代码如下。
运行结果如图7-12所示。
图7-12 二维数组作为形参
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。