Pascal - 指標陣列



Pascal 允許定義指標陣列。當我們想要維護一個數組時,可能會出現以下情況:該陣列可以儲存指向整型、字元或任何其它可用資料型別的指標。以下是整型指標陣列的宣告 −

type
   iptr = ^integer;
var
   parray: array [1..MAX] of iptr;

這將 *parray* 宣告為最多指向整型的指標陣列。因此,*parray* 中的每個元素現在都持有一個指向整型值的指標。以下示例使用了三個整型,它們將儲存在一個指標陣列中,如下所示 −

program exPointers;
const MAX = 3;
type
   iptr = ^integer;

var
   arr: array [1..MAX] of integer = (10, 100, 200);
   i: integer;
   parray: array[1..MAX] of iptr;

begin
   (* let us assign the addresses to parray *)
   for i:= 1 to MAX do
   parray[i] := @arr[i];
   
   (* let us print the values using the pointer array *)
   for i:=1 to MAX do
      writeln(' Value of arr[', i, '] = ' , parray[i]^ );
end.

你還可以使用一個指向字串變數的指標陣列來儲存一個字串列表,如下所示 −

program exPointers;
const
   MAX = 4;
type
   sptr = ^ string;

var
   i: integer;
   names: array [1..4] of string = ('Zara Ali', 'Hina Ali', 'Nuha Ali','Sara Ali') ;
   parray: array[1..MAX] of sptr;

begin
   for i := 1 to MAX do
      parray[i] := @names[i];
   
   for i:= 1 to MAX do
      writeln('Value of names[', i, '] = ' , parray[i]^ );
end.

編譯並執行以上程式碼時,它會產生以下結果 −

Value of names[1] = Zara Ali
Value of names[2] = Hina Ali
Value of names[3] = Nuha Ali
Value of names[4] = Sara Ali
pascal_pointers.htm
廣告