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的一個元素賦值,最後顯示兩個數組元素的值。用數組元素時,其下標不要超出了下界至上界的範圍。變量