RT

解决方案 »

  1.   

    就是(*a)[]与*(a[])的区别咯:)给你段代码理解一下:int main(int argc, char* argv[])
    {
    int a[][3]={1,2,3,4,5,6};
    printf("%d, %d\n", (*a)[1], *(a[1]));
    return 0;
    }program Project1;{$APPTYPE CONSOLE}uses
      SysUtils;type
      T = array[0..2] of integer;var
      a: array[0..1, 0..2] of integer = ((1,2,3),(4,5,6));
      p: ^T;
      pp: array of pinteger;
    begin
      p:=@a;
      setlength(pp, 2);
      pp[0]:=@a[0];
      pp[1]:=@a[1];
      writeln(p^[1], ', ', pp[1]^);
      readln;
    end.你会不会又问(*a)[]与*(a[])有什么区别啊:)
      

  2.   

    这差别大了。。 PropList^[I]与PropList[I]^PropList^[I]: 说明PropList指向的是一个数组之类的数据结构。。
    PropList[I]^: 说明PropList本身为一个数组之类的结构,里面保存的额是指针 比如保存的是PInteger类型的。。
      

  3.   

    var
      p: ^T; //指向数组的指针
      pp: array of pinteger; //存放指针的数组
    ...
    writeln(p^[1], ', ', pp[1]^);
      

  4.   

    呵呵,这差别大了!!
    p^[i]中的p是一个数组的指针,而p[i]^中的p是个数组,它的每个元素都是一个指针。