And*_*and 39
这几乎是一回事.官方文件说明
Assigned(P)对应于指针变量的测试P <> nil,对于程序变量对应于@P <> nil.
所以,如果Assigned(P)是一个普通的指针,则P <> nil和@P <> nil是正好相等.另一方面,如果PInteger是某些程序,那么
var
i: Integer;
p: PInteger;
begin
i := 5;
p := @i;
// Assigned(p) True
// p <> nil True
p := nil;
// Assigned(p) False
// p <> nil False
Run Code Online (Sandbox Code Playgroud)
将会有效
L := TList<integer>.Create;
try
// Assigned(L) True
// L <> nil True
finally
FreeAndNil(L);
end;
// Assigned(L) False
// L <> nil False
Run Code Online (Sandbox Code Playgroud)
但
var
FC: TFormClass;
begin
FC := TForm;
// Assigned(FC) True
// FC <> nil True
FC := nil;
// Assigned(FC) False
// FC <> nil False
Run Code Online (Sandbox Code Playgroud)
甚至不会编译.因此,结论是,PMyRec和TBitmap是每一次完全等同两部作品!