代码如下:
procedure TForm1.Button1Click(Sender: TObject);
Type
PPMyInteger=^PInteger;//定义一个二级指针类型
var
vPint:PInteger;//一级指针//等价于vPint:^Integer;
vPPInt:^PInteger;//二级指针 //等价于vPPInt:PPMyInteger;
vPPInt2:PPMyInteger;
vI:Integer;
begin
vI:=100;
vPint:=@vI;//vPint为指针赋值,指针变量vPint保存的是一个地址 //@vI意思是取出vI的地址,@叫取地址符
ShowMessage(IntToStr(vPint^));//^在指针变量的后面,就是取指针指向的内存的值、內容
vPPInt:=@vPint;//把vPint的地址赋值给vPPInt
ShowMessage(IntToStr(vPPInt^^));//100
//延伸
vPPInt:=@vI;
showmessage(inttostr(PInteger(vPPInt)^)); //100
showmessagefmt('%p',[vPPInt^]); //00000064(這是十六進制,轉換成十進制就是100)
showmessagefmt('%d',[vPPInt^]);//報錯
showmessagefmt('%d',[PInteger(vPPInt)^]);//100
vPPInt2:=@vI;
showmessage(inttostr(pinteger(vPPInt2)^));//100
end;