Delphi : record 記錄型別
阿新 • • 發佈:2019-01-29
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);