Pascal-array-of-pointers

提供:Dev Guides
移動先:案内検索

パスカル-ポインターの配列

Pascalでは、ポインターの配列を定義できます。 整数や文字へのポインタ、または利用可能な他のデータ型を格納できる配列を維持したい場合があります。 以下は、整数へのポインタの配列の宣言です-

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

これは、_parray_をMAX整数ポインターの配列として宣言します。 したがって、_parray_の各要素は、整数値へのポインターを保持するようになりました。 次の例では、次のようにポインタの配列に格納される3つの整数を利用しています-

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