VB数组详解

1、数组的概念
数组是一组具备相同类型和名称的变量的集合。这些变量称为数组的元素,每一个数组元素都有一个编号,这个编号叫作下标,咱们能够经过下标来区别这些元素。数组元素的个数有时也称之为数组的长度。
通常状况下,数组的元素类型必须相同,能够是前面讲过的各类基本数据类型。但当数组类型被指定为变体型时,它的各个元素就能够是不一样的类型。
数组和变量同样,也是有做用域的,按做用域的不一样能够把数组分为:过程级数组(或称为局部数组)、模块级数组以及全局数组。数组

2、定长数组和动态数组
定长数组
定长数组的长度是在定义时就肯定的,在程序运行过程当中是固定不变的。其定义格式为: ide

Dim数组名([下界TO]上界)[As类型名]
其中,数组的下界和类型是可选的。所谓下界和上界,就是数组下标的最小值和最大值。缺省下界时,vB默认的下界是0,但一般人们习惯上是从1开始的,所以咱们能够设置让数组的默认下界为1,这须要在每一个模块的“(声明)”部分添加一行代码:
若是定义数组时不指定其类型,默认是变体型的。
下面举例说明定长数组的定义:
①Dim
a(1 to 3)As Integer
②Dim b(5 to 9)As String
③Dim c(7)As Integer
④Dim
d(6)
其中,例①定义了一个具备三个元素的整型数组,其下标从1到3。例②定义了一个具备五个元素的字符型数组,其下标从5到9。例③缺省了下界,它定义了一个具备八个元素的整型数组,其下标从0到7。例④则缺省了下界和类型,定义的是具备七个元素的变体型数组,其下标从0到6。若是在该模块的“(声明)”部分添加了Option
base 1,则例③和例④的下标都是从l开始了。
在定义定长数组时,其上界和下界必须是常数或常量表达式。内存

动态数组
在不少状况下,数组的长度事先是没法预测的,并且有时可能须要在程序中改变数组的长度以适应新的状况,所以出现了动态数组。动态数组是在定义数组只指定数组名及其类型,等之后知道数组的长度或须要改变数组长度时再用“ReDim”指定它的长度。现举例以下:作用域

Dim X AS Integer
Dim a()As String
……
ReDim a(x)
……it

X=X+3
ReDim
a(x)
其中的“…”表明其它代码。这段代码首先定义了一个整型变量和—个字符型的动态数组,以后通过一系列运算后使变量X获得一个定值,再使用“ReDim”指定数组的长度,最后根据须要又再一次改变了数组的长度。
虽然能够一次或屡次改变更态数组的长度,但当从新指定数组长度时,数组内原有的数据降会被清除。若是既想改变数组的长度,又想保留数组原有的数据,则在使用“ReDim”时须要加上“Preserve”关键字。例如:ReDim
Preserve
a(x)。但要注意,若是缩小数组长度,那么数组中超出新的下界到上界之间的元素将清除,即便使用了“Preserve'’关键字,也不会保留这些元素,若是仍然访问这些元素将会引发“下标越界”的错误!
当不须要再使用某个动态数组时,咱们可使用“Erase”删除该数组,以释放该数组占用的内存空间,例如:Erase
a()。
3、多维数组及数组元素的引用
一个数组能够是一维的,也能够是多维。当须要表示平面中的一个点坐标,就须要用到二维数组;表示空间中的一个点时,就须要用到三维数组。多维数组的定义格式为:io

Dim数组名([下界TO]上界[,TO 上界[下界 TO]
[,…])[AS类型名]
多维数组的定义格式与—一维数组基本上是一致的,只是多加几个上界和下界。
如今举例以下:
Dim a(1 TO 3,1
TO 4) As Integer
Dim b(5, 9) As Siring
Dim b(4, 3) class

这三行语句分别定义了一个两维数组,第一个指定了下界及类型;第二个只指定了类型
使用默认的下界;最后一个下界和类型都没有指定,其类型是变体型的。
对数组元素的引用,是数组名加下标的形式。例如:
Dim a(5)as
Integer
Dim b(3,4)as
Integer
a(1)=3
a(2)=5
a(3)=a(1)+a(2)
b(2,1)=a(2)
msgbox
a(3)
msgbox
b(2,1)
在此例中,先对数组a的前三个元素赋值,再给数组b的一个元素赋值,最后显示两个数组元素的值。用数组元素时,其下标不要超出了下界至上界的范围。变量