delphi二维数组如何定义

2025-03-22 18:07:45
推荐回答(3个)
回答1:

在 delphi (Object Pascal 语言)中,使用 array 关键字进行数组定义。


如果需要定义二维数组可以采取以下定义形式:


一、静态数组定义


静态数组定义,通常用于数组元素的数目确定的情况。定义形式如下:



示例:


type
  //定义二维数组类型
  TMultiArr = array[1..3,1..3] of string; 
var
  MultiArr: TMultiArr;
  
    //定义 行12*列12 的 Integer 数组
   IntArr: array[1..12] of array[1..12] of Integer;
   
   //定义 行5*列5 的 string 数组
  StrArr: array[1..5,1..5] of string;


二、动态数组定义


动态数组常用于当数组的元素数目不确定的时候,其定义形式如下:


  SamArr: array of array of Integer; //定义二维数组,数组元素不确定

  type TMessageGrid = array of array of string; //定义二维数组类型,数组元素不确定
  var Msgs: TMessageGrid; //声明一个二维数组类型变量


二维动态数组的元素数目,可以通过 SetLenth 来动态指定,示例代码如下:


procedure TForm1.Button3Click(Sender: TObject);
type TMultiArr = array of array of string;
var
  a: TMultiArr;
  I, J: Integer;
  s: string;
begin
  SetLength(a, 10);
  for I := Low(a) to High(a) do
  begin
    SetLength(a[I], I);
    for J := Low(a[I]) to High(a[I]) do
      a[I, J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
  end;
  for I := Low(a) to High(a) do
  begin
    s := '';
    for J := Low(a[I]) to High(a[I]) do
      s := s + ' ' + a[I, J];
    Memo1.Lines.Add(s);
  end;
end;


代码运行截图:


回答2:

a: array [0..1] of array [0..9] of integer;


a: array of array of integer;

回答3:

两种形式,任选其一,例如:
aMatrix : array[1..10] of array[1..50] of Real;
bMatrix : array[1..10, 1..50] of Real;