数据类型之记录(record)

本文详细介绍了ObjectPascal中的记录类型,包括基本记录的声明与使用、记录数组的定义及访问方式,并展示了如何利用with语句简化字段赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Object Pascal中用户自定的结构成为记录。它相当于C语言中的struct,Visual Basic中的Type

记录(record)是一个集合,它把一组相关数据聚集在一个存储单元里,记录中的每个元素称作字段。

记录的声明和简单访问示例:

type
  MailingListRecord = record   { 声明记录用关键字record}
    FirstName: string;
    LastName: string;
    Address: string;
    City: string;
    State: string;
    Zip: Integer;
  end;
var
  MLRecord: MailingListRecord;  { 定义一个该记录的变量}
begin
  { 当使用记录时,用小圆点来访问它的字段}
  MLRecord.FirstName := 'Bruce';
  MLRecord.LastName := 'Reisdorph';
  MLRecord.Address := '123 Inspiration Pt.';
  MLRecord.City := 'Merced';
  MLRecord.State := 'CA';
  MLRecord.Zip := 99999;

  { 使用with语句来简化上面的字段的输入}
  { with表示“用这个对象'MLRecord'做下列”}
  with MLRecord do
  begin
    FirstName := 'Bruce';
    LastName := 'Reisdorph';
    Address := '123 Inspiration Pt.';
    City := 'Merced';
    State := 'CA';
    Zip := 99999;
  end;
  { with可以减少键入量,同时也使程序可读性更强}
end;

当然记录也可以有数组,声明和使用记录数组不是太复杂,具体代码如下:

type
  MailingListRecord = record   { 声明记录用关键字record}
    FirstName: string;
    LastName: string;
    Address: string;
    City: string;
    State: string;
    Zip: Integer;
  end;
var
  MLRecord: array[0..9] of MailingListRecord;  { 定义一个记录数组}
begin
  { 当使用记录时,用小圆点来访问它的字段}
  MLRecord[0].FirstName := 'Bruce';
  MLRecord[0].LastName := 'Reisdorph';
  MLRecord[0].Address := '123 Inspiration Pt.';
  MLRecord[0].City := 'Merced';
  MLRecord[0].State := 'CA';
  MLRecord[0].Zip := 99999;

  { 使用with语句来简化上面的字段的输入}
  { with表示“用这个对象'MLRecord'做下列”}
  with MLRecord[1] do
  begin
    FirstName := 'Bruce';
    LastName := 'Reisdorph';
    Address := '123 Inspiration Pt.';
    City := 'Merced';
    State := 'CA';
    Zip := 99999;
  end;
  { with可以减少键入量,同时也使程序可读性更强}
end;

当然Object Pascal也支持可变记录,以后我们再讨论吧。

以上代码均在Delphi7中测试通过。

转载于:https://www.cnblogs.com/pchmonster/archive/2011/12/19/2294035.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值