数组类型
数组声明
//一维静态数组
Type
CompanyName=Array [1..20]of string;
Var
MyCompany:CompanyName;
---------------------------------------------
或者直接声明
Var
MyCompany:Array [1..20]of string;
//二维静态数组
Type
MyPoint=Array [1..20]of array [1..20]of integer;
//MyPoint=Array [1..20,1..20]of integer;
Var
Point:MyPoint;
---------------------------------------------
或者直接声明
Var
Point:Array [1..20,1..20]of integer;
//动态数组
Type
CompanyName=Array of string;
Var
MyCompany:CompanyName;
---------------------------------------------
或者直接声明
Var
MyCompany:Array of string;
SetLength函数分配数组大小
var
A:Array of integer
Count:integer;
Begin
SetLength(A,5);
//设置数据A的大小为5
For Count:=0 to 4 do
A[Count]:=Count+5; //A[0]到A[4]分别为5、6、7、8、9
SetLength(A,7); //再次设置A的大小为7,A[0]到A[6]分别为5、6、7、8、9、0、0
SetLength(A,3); //重新设置数组的大小为3,[A2]以后被截断,A[O]到A[2]分别为5、6、7
End;
有时候,大家这样要先设定长度,在赋值,很麻烦,现在介绍一个一气呵成的招数
type
TA = Array of Integer;
var
A : TA;
begin
A := TA.Create(1, 2, 3);
//使用上面的方法之后,A[0] :=1, A[1] := 2, A[2]:=3
end;
介绍二维数组中的不定长数组
var
B : Array of Array of Integer
begin
//设置一个3*3的矩阵
SetLength(B, 3, 3);
//如果需要实现齿状数组,必须像下面这么做
SetLength(B, 3);
SetLength(B[0], 1);
SetLength(B[1], 2);
SetLength(B[2], 3);
end;
Copy函数剪切
var
A.B:array of integer:
i:integer:
begin
setlength(A,4);
A[0]:=1;
A[1]:=2;
A[2]:=3;
A[3]:=4;
B:=copy(A,2,2);//从数组A第2个元素开始取两个元素保存到数组B中
for i:=low(B) to High(B) do
editl.Text:=editl.Text+' '+inttostr(B[i]);
end;
//运行结果:34
《Delphi应用开发完全手册》p28
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?