日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi 记录类型- 结构指针

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi 记录类型- 结构指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:萬一老師的 Delphi 博客

  • unit?Unit1; ??
  • ??
  • interface??
  • ??
  • uses??
  • ??Windows,?Messages,?SysUtils,?Variants,?Classes,?Graphics,?Controls,?Forms, ??
  • ??Dialogs,?StdCtrls; ??
  • ??
  • type??
  • ??TForm1?=?class(TForm) ??
  • ????Button1:?TButton; ??
  • ????Button2:?TButton; ??
  • ????Button3:?TButton; ??
  • ????Button4:?TButton; ??
  • ????procedure?Button1Click(Sender:?TObject); ??
  • ????procedure?Button2Click(Sender:?TObject); ??
  • ????procedure?Button3Click(Sender:?TObject); ??
  • ????procedure?Button4Click(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); ??
  • begin??
  • ??GetMem(PRec2,?SizeOf(TRec)); ??
  • ??PRec2.name?:=?'王五'; ??
  • ??PRec2.age?:=?9; ??
  • ??
  • ??ShowMessage(PRec2.name);?{王五}??
  • ??
  • ??{手工給的內存,?必須手工釋放}??
  • ??FreeMem(PRec2); ??
  • end; ??
  • ??
  • ??
  • //雖是同一個結構的指針,?但還不是一個類型 ??
  • procedure?TForm1.Button3Click(Sender:?TObject); ??
  • begin??
  • ??Rec.name?:=?'孫六'; ??
  • ??Rec.age?:=?16; ??
  • ??
  • ??{把?Rec?的地址給屬于?^Rec?類型的?PRec3?指針}??
  • ??PRec3?:=?@Rec; ??
  • ??ShowMessage(PRec3.name);?{孫六}??
  • ??
  • ??{如果要把?PRec3?知道的值告訴?PRec1,?需要類型轉換}??
  • ??PRec1?:=?TPRec(PRec3); ??
  • ??ShowMessage(PRec1.name);?{孫六}??
  • ??
  • ??
  • ??{反過來想,?如果要把?PRec1?知道的值告訴?PRec3?呢?}??
  • ??Rec.name?:=?'趙七'; ??
  • ??Rec.age?:=?24; ??
  • ??PRec1?:=?@Rec; ??
  • ??ShowMessage(PRec1.name);?{趙七}??
  • ??
  • ??{這樣轉換}??
  • ??TPRec(PRec3)?:=?PRec1; ??
  • ??ShowMessage(PRec3.name);?{趙七}??
  • end; ??
  • ??
  • ??
  • //用無類型指針讀寫?TRec?中的數據 ??
  • procedure?TForm1.Button4Click(Sender:?TObject); ??
  • begin??
  • ??Rec.name?:=?'杜八'; ??
  • ??Rec.age?:=?36; ??
  • ??
  • ??P?:=?@Rec; ??
  • ??
  • ??{賦值}??
  • ??TPRec(P).name?:=?'侯九'; ??
  • ??
  • ??{取值}??
  • ??ShowMessage(TPRec(P).name);?{侯九}??
  • end; ??
  • ??
  • end. ?
  • 轉載于:https://www.cnblogs.com/dashan9zj/archive/2008/12/22/1360054.html

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的Delphi 记录类型- 结构指针的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。