Pascal - 指针数组
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