昨天学到delphi指针,自己尝试用动态指针构造了一个链表,但是编译时出错,自己也是检查多次无果,求大家帮忙看看
程序实现部分如下:
implementation{$R *.dfm}
type
  abc=^jl;
  jl=record
  mz:string[10];
  nl:string[10];
  next:abc;
  end;
var
  p,temp,start:^jl;procedure TForm1.btn1Click(Sender: TObject);
begin
New(p);
if start=nil then start:=p
else temp^.next:=p;//此处出错,提示类型不符合p^.mz:=edt1.Text ;
P^.nl:=edt2.text;
p^.next:=nil;temp:=p;//作为上一个节点的存档
end;procedure TForm1.FormCreate(Sender: TObject);
begin
start:=nil;
end;

解决方案 »

  1.   

    implementation{$R *.dfm}
    type
      abc=^jl;
      jl=record
      mz:string[10];
      nl:string[10];
      next:abc;
      end;
    var
     // p,temp,start:^jl;改成下面的:
    p,temp,start :abc;

    procedure TForm1.btn1Click(Sender: TObject);
    begin
    New(p);
    if start=nil then start:=p
    else temp^.next:=p;//此处出错,提示类型不符合p^.mz:=edt1.Text ;
    P^.nl:=edt2.text;
    p^.next:=nil;temp:=p;//作为上一个节点的存档
    end;
      

  2.   

    delphi就这样,不同地方定义的两个同样的类型会认为是两个不同的定义,至于为什么我也不知道,它就是这么规定的