指针(一级指针、二级指针)

代码如下:

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;

 

posted @ 2021-09-17 11:02  枭二熊  阅读(133)  评论(0编辑  收藏  举报