数组类型

数组声明

//一维静态数组
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

posted @   德琪  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示