上述数组是静态的,即在定义数组变量时,必须指定数组的大小,系统在运行之前就为程序分配了
内存空间。Delphi还可以使用动态数组,即在编译时不知道维数,在运行时动态分配的数组。为了定义一个动态数组,只要在定义时不指定维数,语法格式如下:
var<数组变量名>:array of<元素类型>:
例如:
var A:array of Integer;
定义了动态数组变量A,定义中只指定了基类型,而没有指定元素个数。程序运行时,用SetLength()过程为数组分配实际的内存空间,例如:
SetLength(A,1 O);
系统为数组A分配了1 O个元素的内存空间,下标从0~9,动态数组总是以整数作为下标,并且下标总是从0开始。分配内存后,就可以像访问静态数组一样访问动态数组的每一个元素。
动态数组也可以是多维的。例如下面就定义并使用了动态二维数组。
var R:array of array of Integer;
begin 。
SetLength(R,1 0,1 0);
R[1,2]:=1 0;
end;
R定义为一个动态的二维数组,程序运行时,申请了1 0×1 O个元素的内存空间,之后就可以访问R的每个元素。