Delphi : record 记录类型 - 结构指针

unitUnit1; 
  
  
interface  
  
uses  
  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls,Forms,   
  Dialogs,StdCtrls;   
  
type  
  TForm1 =class(TForm)   
    Button1:TButton;   
    Button2:TButton;   
    Button3:TButton;   
    Button4:TButton;   
    procedureButton1Click(Sender:TObject);   
    procedureButton2Click(Sender:TObject);   
    procedureButton3Click(Sender:TObject);   
    procedureButton4Click(Sender:TObject);   
 end;   
  
var  
  Form1:TForm1;   
  
implementation  
  
{$R *.dfm}  
  
type  
  TRec =record      {定义结构 TRec}  
    name:string[12];   
    age:Word;   
 end;   
  TPRec =^TRec;     {定义 TRec 结构的指针类型 TPRec}  
  
var  
 Rec:        TRec;   {声明结构变量}  
  PRec1,PRec2:TPRec;   {声明 TPRec指针变量}  
 PRec3:     ^TRec;    {声明TRec 结构的指针变量, 现在 PRec1 与 PRec3是不同类型的变量}  
 P:          Pointer; {声明无类型指针}  
  
  
//通过结构指针访问结构   
procedure TForm1.Button1Click(Sender:TObject);   
begin  
  Rec.name :='张三';   
  Rec.age :=18;   
  
  PRec1 := @Rec; {把 Rec 的地址告诉PRec1}  
  
 {本来应该这样访问}  
  ShowMessage(PRec1^.name);{张三}  
  
  {Delphi允许这样简单使用结构指针}  
  ShowMessage(PRec1.name); {张三}  
  
 {如果我们通过指针修改了数据}  
  PRec1.name :='李四';   
  
  {那么}  
  ShowMessage(Rec.name);{李四}  
  {因为 PRec1 和 Rec所指的是同一个数据}  
end;   
  
  
//如果是单独使用指针,必须先给内存   
procedure TForm1.Button2Click(Sender:TObject);   

你可能感兴趣的:(DELPHI)