数组是由若干个同类型并且具有序号的变量组成的队列。
在分配内存时,数组的所有成员将被安排在一段连续的区域中。
delphi 的数组可分为静态数组和动态数组
1. 静态数组
在初始化时就被分配内存的数组叫做静态数组。因此静态数组在定义后其大小不能改变。
定义语法:
一维数组
Type
TmyArray = Array[1..3] of integer;
TmyArray2 = Array[1..3,1..2] of integer; //或 TmyArray2 = Array[1..3] of Array[1..2] of integer;
var
myarray:TmyArray;
myarray2:TmyArray2;
或者
var
myarray:array[1..3] of intger;
myarray2 = Array[1..3,1..2] of integer; //或 myarray2 = Array[1..3] of Array[1..2] of integer;
注意: delphi在处理数组变量时,使用数组类型的名称来判断数组变量的类型,例如:
var
myArray1 : Array[1..3] of integer;
myArray2 :Array[1..3] of integer;
编译器会将myArray1,myArray2当做两个不同的类型。因为myArray1,myArray2所属的数组类型均无名称。
只有两个数组类型名称一致时,两个变量才能当做同一类型,可将上边的语句改为:
var
myArray1,myArray2 : Array[1..3] of integer;
2. 动态数组
与静态数组不同,动态变量声明时只需声明成员类型而不声明成员的序号。
Type
Tmyarray = array of char;
Tmyarray2 = array of array of char;
var
myarray:Tmyarray;
myarray2:Tmyarray2;
动态数组使用前必须设置大小。
setlength(myarray,4);
setlength(myarra2, 4,3);
动态数组只能设置数组长度,而不能设置成员序号。delphi 对未指定成员序号的数组默认其序号从0开始。
Delphi提供了3个标准函数: High(),low(),length()分别用于返回数组的成员序号的最大值,最小值及成员数量(即数组长度)
对于多维数组,这三个函数只返回第一维的长度及序号最值。