当前位置: 首页 > 文档资料 > Pascal 中文教程 >

指针数组( Array of pointers)

优质
小牛编辑
133浏览
2023-12-01

Pascal允许定义指针数组。 当我们想要维护一个数组时,可能存在一种情况,该数组可以存储指向整数或字符或任何其他可用数据类型的指针。 以下是一个指向整数的指针数组的声明 -

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

这将parray声明为MAX整数指针的数组。 因此, 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