VB數組詳解

一、數組的概念
數組是一組具有相同類型和名稱的變量的集合。這些變量稱爲數組的元素,每個數組元素都有一個編號,這個編號叫做下標,我們可以通過下標來區別這些元素。數組元素的個數有時也稱之爲數組的長度。
一般情況下,數組的元素類型必須相同,可以是前面講過的各種基本數據類型。但當數組類型被指定爲變體型時,它的各個元素就可以是不同的類型。
數組和變量一樣,也是有作用域的,按作用域的不同可以把數組分爲:過程級數組(或稱爲局部數組)、模塊級數組以及全局數組。

二、定長數組和動態數組
定長數組
定長數組的長度是在定義時就確定的,在程序運行過程中是固定不變的。其定義格式爲:

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)
……

X=X+3
ReDim
a(x)
其中的“…”代表其它代碼。這段代碼首先定義了一個整型變量和—個字符型的動態數組,之後經過一系列運算後使變量X得到一個定值,再使用“ReDim”指定數組的長度,最後根據需要又再一次改變了數組的長度。
雖然可以一次或多次改變動態數組的長度,但當重新指定數組長度時,數組內原有的數據降會被清除。如果既想改變數組的長度,又想保留數組原有的數據,則在使用“ReDim”時需要加上“Preserve”關鍵字。例如:ReDim
Preserve
a(x)。但要注意,如果縮小數組長度,那麼數組中超出新的下界到上界之間的元素將清除,即使使用了“Preserve'’關鍵字,也不會保留這些元素,如果仍然訪問這些元素將會引起“下標越界”的錯誤!
當不需要再使用某個動態數組時,我們可以使用“Erase”刪除該數組,以釋放該數組佔用的內存空間,例如:Erase
a()。
三、多維數組及數組元素的引用
一個數組可以是一維的,也可以是多維。當需要表示平面中的一個點座標,就需要用到二維數組;表示空間中的一個點時,就需要用到三維數組。多維數組的定義格式爲:

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)

這三行語句分別定義了一個兩維數組,第一個指定了下界及類型;第二個只指定了類型
使用默認的下界;最後一個下界和類型都沒有指定,其類型是變體型的。
對數組元素的引用,是數組名加下標的形式。例如:
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的一個元素賦值,最後顯示兩個數組元素的值。用數組元素時,其下標不要超出了下界至上界的範圍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章