指针问题,想知道一下道理(50分)

  • 主题发起人 主题发起人 月冷无痕
  • 开始时间 开始时间

月冷无痕

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
ss : ^string;
s : ^string;
begin
new(ss);
ss^ := 'sss';
new(s);
s := ss ;
end;

请问为什么不能编译,(那位可不可以给小弟讲一下道理)
 
procedure TForm1.Button1Click(Sender: TObject);
var
ss : ^string;
s : ^string;
begin
new(ss);
ss^ := 'sss';
new(s);
s := Pointer(ss);
end;
 
同意楼上
因为在delphi里如果想这样声明指针变量
var
ss : ^string;
s : ^string;
编译器会认为s和ss是不同的类型,所以它们不能直接进行赋值操作。
应该把它们放在一起声明,就不会产生这样的问题
var
s,ss: ^string;
或者更简洁点
trype
PStr = ^string;
var
s, ss: PStr;
 
多人接受答案了。
 

Similar threads

后退
顶部