固定大小的均匀数据结构。
概观
固定长度的数组是
阵列,在程序执行过程中具有固定的常量。固定长度数组用于存储其元素的内存是在可执行文件的堆栈或
.BSS或
.DATA部分的编译时赋值的,这取决于是否使用
Static来定义它。这可能允许更快的程序执行,因为阵列的内存已经被赋值,不像
可变长度数组,其元素内存在运行时间之前没有被赋值。
具有
automatic storage 的固定长度数组的元素赋值在程序堆栈上,指向这些元素的指针仅在数组范围内保持有效。具有
static storage 的固定长度数组的元素在可执行文件的
.DATA或
.BSS部分中赋值,这取决于它们是否在定义时被初始化,因此指向这些元素的指针对于整个执行该程序。任何存储类的固定长度数组在程序执行过程中无法调整大小,只能
可变长度数组可以。
固定长度数组也可以用作
用户定义的类型内的数据成员,在这种情况下,数组直接作为用户定义类型结构的一部分赋值。
宣言
使用
Dim或
Static关键字声明一个固定长度的数组,后跟一个变量标识符,一个括号的边界列表和一个元素
数据类型.
'' Defines a one-dimensional fixed-length array of type INTEGER having automatic storage.
Dim arrayOfIntegers(69) As Integer
'' Defines a one-dimensional fixed-length array of type SHORT having static storage.
Static arrayOfShorts(420) As Short
有多种方法来指定数组的元素数量。每个阵列可以有1或8维。每个维度都有一个下限和一个上限。
Dim a(1) As Integer '' 1-dimensional, 2 elements (0 and 1)
Dim b(0 To 1) As Integer '' 1-dimensional, 2 elements (0 and 1)
Dim c(5 To 10) As Integer '' 1-dimensional, 5 elements (5, 6, 7, 8, 9 and 10)
Dim d(1 To 2, 1 To 2) As Integer '' 2-dimensional, 4 elements: (1,1), (1,2), (2,1), (2,2)
Dim e(255, 255, 255, 255) As Integer '' 4-dimensional, 256 * 256 * 256 * 256 elements
对于要声明为固定长度的数组,必须使用数字字面值或
Const值或
Enum常量指定边界。
Const myLowerBound = -5
Const myUpperBound = 10
'' Declares a one-dimensional fixed-length array, holding myUpperBound - myLowerBound + 1 String objects.
Dim arrayOfStrings(myLowerBound To myUpperBound) As String
'' Declares a one-dimensional fixed-length array of bytes,
'' big enough to hold an INTEGER.
Dim arrayOfBytes(0 To SizeOf(Integer) - 1) As Byte