在Pascal中如何定义一个指向数组的指针?

解决方案 »

  1.   

    var
     a: array [0..10] of char;
     i: ^integer;
    begin
      i :=   @a[0] ;
    end;
      

  2.   

    能不能告诉我怎么用这个指针访问数组中的任何一个元素,并且我要在一个Procedure中的参数中传递一个指向数组的指针。
    例如:
    procedure myprocedure(指向数组的指针);
    该怎么写这个过程的函数参数?
      

  3.   

    你怎么不能忘记C++呢
    一定要那样访问吗?
     for i := 0 to length(a) -1 do 
     begin 
      a[i]这样不挺好吗
    end;
      

  4.   

    确实又C++/C到Pascal需要一段时间,麻烦你能在指针这方面详细给我讲一下C和Pascal的区别。我现在在用 Delphi做数据结构的课程设计,所以必须了解清楚。谢谢!
      

  5.   

    type
      arr=array[1..10] of integer;
      ptr=^arr;
    var
      p:ptr;
    begin
      New(p);
      myprocedure(p);
      showmessage(inttostr(p^[1]));
    end;procedure myprocedure(var q:ptr);
    begin
      q^[1]:=123;
    end;
      

  6.   

    那如果本身数组的大小是在过程的参数中指定的,这种情况怎么办。
    type
      arr=array[1..10] of integer;
      ptr=^arr;
    该怎么书写.
    相应的类C/C++语言代码为://HuffTree类型为指向结构HTNode的指针
    void HuffCoding(HuffTree &HT,int n)
    {
      HT=(HuffTree)malloc((n+1)*sizeof(HTNode));
      HT[1]={0,0,0,0};
    }
      

  7.   

    arr=array of integer;Use SetLength
      

  8.   

    如下
    var
     a: array of string ; //动态数组
     i: integer;
    begin
      setlength(a,10); //分配10个空间
      for i := 0 to length(a)-1 do
      begin
        a[i] := inttostr(i);
      end;
      freemem(@a);
    end;
      

  9.   

    楼主:建议你先先看懂网上流传的那本<Pascal精要>,里面把Pascal的指针、数组都讲的很清楚,建议你先看看再来问这个问题。这个电子书是免费的,中文版,国外牛人写的,清楚明白,我就是看这本书把Pascal入门的,以前我只会用C/C++,很讨厌Pascal,真正看了之后,觉得没有什么本质区别,不过如此。
      

  10.   

    数组的指针就是直线数组第一个元素的指针,所以我们至少有两种方法
    例如:
    1:
     type
       pa:^ta;
       ta:array[0..9] of Integer;
     var
       pa1:^ta;//
       pa2:pa;// 效果相同
      begin
       
    2:
     type
       ta:array[0..9] of Integer;
     var
       a:ta;
       pa:PInteger;
      begin
       pa:=@a[0];
       inc(pa);//访问下一个元素