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.htm
廣告