integer(@P)和 integer(P)有什么区别
procedure TForm1.Button11Click(Sender: TObject);
type
Tpstr =^Tstr;
Tstr = record
i: integer;
s: string;
end;
var
p: Tpstr;
p1: Pointer;
begin
new(p);
showmessage(inttostr(integer(@P)));
showmessage(inttostr(integer(P)));
dispose(p);
end;
integer(@P)和 integer(P)有什么区别。
integer函数在delphi里是怎么解释的。查资料没找到。
[解决办法]
因为i就是结构体的第一个字段,所以
integer(@P^.i)=integer(@(P^.i))=integer(P),
integer(@P)是指针变量本身的地址,integer(P)是指针指向的地址,而integer(@P^.i)是i的地址