Delphi:二维数组到一维数组

时间:2018-02-05 09:52:08

标签: delphi

我有一个二维数组。在for循环中,我想这样做

procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
    arr : array[0..2, 0..1] of integer;
    tmpArr : array[0..1] of integer;
begin
  arr[0, 0] := 0;
  arr[0, 1] := 92;

  arr[1, 0] := 1;
  arr[1, 1] := 75;

  arr[2, 0] := 2;
  arr[2, 1] := 70;

  for i := 0 to 2 do
    tmpArr := arr[i];

end;

但它说不兼容的类型。我认为arr [i]和tmpArr都是一维数组,每个都有两个元素,不是吗?

1 个答案:

答案 0 :(得分:6)

“看起来相同”的数组在Delphi中不兼容。 您需要声明一个类型:

type
  TSomeArray = array[0..1] of integer;
var
  i: integer;
  arr: array[0..2] of TSomeArray;
  tmpArr: TSomeArray;
begin
  arr[0, 0] := 0;
  arr[0, 1] := 92;

  arr[1, 0] := 1;
  arr[1, 1] := 75;

  arr[2, 0] := 2;
  arr[2, 1] := 70;

  for i := 0 to 2 do
    tmpArr := arr[i];
end;