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