Pascal - 动态数组

对于动态数组类型,数组的初始长度为零。 数组的实际长度必须使用标准的SetLength函数设置,该函数将分配必要的内存来存储数组元素。

声明动态数组

对于声明动态数组,您没有提及数组范围。 例如 −

type  
   darray = array of integer;
var
   a: darray;

在使用数组之前,必须使用 setlength 函数声明大小 −

setlength(a,100);

现在,数组 a 的有效数组索引范围为 0 到 99:数组索引始终从零开始。

以下示例声明并使用二维动态数组 −

program exDynarray; 
var
   a: array of array of integer; (* a 2 dimensional array *)
   i, j : integer;  

begin  
   setlength(a,5,5);  
   for i:=0 to 4 do  
      for j:=0 to 4 do  
         a[i,j]:= i * j;  
   
   for i:=0 to 4 do  
   begin  
      for j:= 0 to 4 do  
      write(a[i,j]:2,' ');  
    writeln;  
   end;  
end.

当上面的代码被编译并执行时,会产生以下结果 −

0 0 0 0  0
0 1 2 3  4
0 2 4 6  8
0 3 6 9  12
0 4 8 12 16

❮ pascal_arrays.html