Type
pointer=^数据基类型;
Var
p:pointer;
///////////////////////////
Var
p: ^数据基类型;
以上代码有没有区别?
如果有,什么时候情况下使用这两种?

解决方案 »

  1.   

    没多大区别,第一种好点吧
    type
    R=Record
     a:integer;
     b:Byte;
     c:Char;
     s:String;
    end;
    var
    P:^R; 
      

  2.   

    type
    T=^R;
    R=Record
     a:integer;
     b:Byte;
     c:Char;
     s:String;
    end;
    var
    P:T; 
      

  3.   

    Type下是声明一个指针类型,这样你才可以使用像p:pointer;这样的声明,而且只要引用了所在单元,就可以使用pointer第二种,是局部变量,只在本方法中使用,其他地方无法使用
      

  4.   


    有区别,一种是无定义类型指针,也就是说通用类型指针,这种指针可以是任意类型。
    这种方式使用的时候一般情况看下,需要使用类型转换。
    另外一种是定义类型指针,也就是说使用“p: ^数据基类型;”定义的时候,指针类型也就确定了。
    通常用于record的指针类型声明。
    当然系统中也定义了类似PString这样的类型提供给用户使用。
      

  5.   

    type
    T=^R;
    R=Record
     a:integer;
     b:Byte;
     c:Char;
     s:String;
    end;
    var
    P:T; 
      

  6.   

    实质没有区别,但是前一种的使用更好。定义一种类型,然后所有的变量都是这个类型的实例。如果存在多个实例,那么他们的类型是一致的,但是如果用后一种,人为理解类型是一致的,但是Delphi不买账:它们是不同的类型的实例。因此推荐用第一种。