在VB中有两种形式的数组:定长数组和动态数组。
定长数组的长度是在定义时就确定的,在程序运行过程中是固定不变的。其定义格式为
Dim数组名([下界TO]上界)[As类型名]。
其中,数组的下界和类型是可选的。所谓下界和上界,就是数组下标的最小值和最大值。缺省下界时,VB默认的下界是0,但通常人们习惯上是从1开始的,因此我们可以设置让数组的默认下界为1,这需要在每个模块的“声明”部分添加一行代码:Option base 1。
如果定义数组时不指定其类型,默认是变体型的。
下面举例说明定长数组的定义。
(1)Dim a(1 to 3)As Integer
(2)Dim b(5 to 9)As String
(3)Dim c(7)As Integer
(4)Dim d(6)
其中,例(1)定义了一个具有三个元素的整型数组,其下标从1到3。(https://www.xing528.com)
例(2)定义了一个具有五个元素的字符型数组,其下标从5到9。
例(3)缺省了下界,它定义了一个具有八个元素的整型数组,其下标从0到7。
例(4)则缺省了下界和类型,定义的是具有七个元素的变体型数组,其下标从0到6。
如果在该模块的“声明”部分添加了Option base 1,则例(3)和例(4)的下标都是从1开始的。在定义定长数组时,其上界和下界必须是常数或常量表达式。
动态数组:在很多情况下,数组的长度事先是无法预测的,而且有时可能需要在程序中改变数组的长度以适应新的情况,因此出现了动态数组。动态数组是在定义数组时只指定数组名及其类型,等以后知道数组的长度或需要改变数组长度时再用“ReDim”指定它的长度。
现举例如下。
其中,“……”代表其他代码。这段代码首先定义了一个整型变量和—个字符型的动态数组,之后经过一系列运算后使变量X得到一个定值,再使用“ReDim”指定数组的长度,最后根据需要又再一次改变了数组的长度。
虽然可以一次或多次改变动态数组的长度,但当重新指定数组长度时,数组内原有的数据会被清除。如果既想改变数组的长度,又想保留数组原有的数据,则在使用“ReDim”时需要加上“Preserve”关键字。例如:ReDim Preserve a(x)。但要注意,如果缩小数组长度,那么数组中超出新的下界到上界之间的元素将清除,即使使用了“Preserve”关键字,也不会保留这些元素,如果仍然访问这些元素将会引起“下标越界”的错误。
当不需要再使用某个动态数组时,我们可以使用“Erase”删除该数组,以释放该数组占用的内存空间,例如:Erase a()。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
