有下面代码段:
type
  TRec = record
    name: string[12];
    age: Word;
  end;
  TPRec = ^TRec; var
  Rec:         TRec;
  PRec1:       TPRec;
  PRec2:      ^TRec;请问:
TPRec = ^TRec;定义了什么?定义了一个指向Trec结构的指针类型吧?
TPRec,PRec1、PRec1有什么区别,我都晕了

解决方案 »

  1.   

    TPRec = ^TRec 定义了一个指向Trec结构的指针类型TPRec是个指针类型,PRec1、PRec2是指针变量,它们类型是一样的
      

  2.   

    感觉PRec1、PRec2不一样
    因为例程中有下面一句类型转换语句,既然类型一样就不要类型转换了,我不明白为什么要类型转换
    PRec1 := TPRec(PRec2);
      

  3.   

    一楼说的没有错Delphi对类型检查非常严格,尽管我们知道:它们实际上都是指向TRec结构的指针,但编译器仍将它们视为两个不同的类型。不加强制转换就过不了编译器这一关。
      

  4.   

    var
      x:array[0..1] of  integer;
      y:array[0..1] of  integer;
    和这样写
    var
      x,y:array[0..1] of  integer;
    都是有区别的
      

  5.   

    Delphi对类型检查非常严格,尽管我们知道:它们实际上都是指向TRec结构的指针,但编译器仍将它们视为两个不同的类型。不加强制转换就过不了编译器这一关。
      

  6.   

     ^TRec,delphi里会是看做一个普通的pointer类型.所以要转换的.你直接赋值看编译错误信息就看到了。