文档章节

学习结构[记录]类型(8) - 结构嵌套

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 311
阅读 7
收藏 0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//间接嵌套
procedure TForm1.Button1Click(Sender: TObject);
type
  TWife = record  {妻子的数据结构}
    name: string;
    age: Word;
  end;

  TMan = record   {男人的数据结构}
    name: string;
    age: Word;
    wife: TWife;  {这里嵌套了结构}
  end;
var
  man: TMan;
begin
  man.name := '张三';
  man.age := 63;
  man.wife.name := '马翠';
  man.wife.age := 36;

  ShowMessage(man.name + #32 + man.wife.name); {张三 马翠}

  ShowMessage(IntToStr(SizeOf(man)));
end;


//直接嵌套
procedure TForm1.Button2Click(Sender: TObject);
type
  TMan = record   {男人的数据结构}
    name: string;
    age: Word;
    wife: record name: string; age: Word; end; {直接嵌套结构}
  end;
var
  man: TMan;
begin
  man.name := '张三';
  man.age := 63;
  man.wife.name := '马翠';
  man.wife.age := 36;

  ShowMessage(man.name + #32 + man.wife.name); {张三 马翠}
end;


//另外, 说到直接嵌套, 其实结构事先不定义, 也是可以直接使用的, 如:
procedure TForm1.Button3Click(Sender: TObject);
var
  man: record name: string; age: Word; end;
begin
  man.name := '李四';
  man.age := 81;

  ShowMessage(man.name); {李四}
end;
{
  注意没有, 在本页的例子中, 结构中的 name 被声明为 string !
  结构中不是不允许长字符串吗?
  其实 Delphi 在这里是把 string 当作 ShortString 用的.
  也就是说这里的 string 最大容量是 255 个字符, 127 个汉字.
}
end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/01/09/1032374.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
4-Java基础语法-流程控制之选择结构

流程控制;流程控制语句: 顺序、选择、循环 什么是顺序? 运行结果: 顺序结构,一句一句按着顺序执行。 选择结构: if if-else 根据条件,选择执行if还是执行else后面的语句。 比如之前用户输入...

天涯明月笙
07/31
0
0
【Go语言】【13】再谈GO语言的结构体

本文从如下四个方面再领着大家认识结构体 匿名结构体和匿名成员的结构体 值传递和引用传递 再谈嵌套结构体 面向对象 1、匿名结构体和匿名成员的结构体 如上篇所述,一个结构体需要先声明,再...

qingkechina
2015/07/07
0
0
c语言结构体用法

结构(struct) 结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。 结构中可以使用不同的数据类型。 1. 结构说明和结构变量定义 在Turbo C中, 结构也是一种数据类型, 可以使...

长平狐
2012/09/03
71
0
C语言学习笔记(1)— 结构体注意点

1、结构标记是可选的,用于结构命名; 2、如果结构声明的后面不带变量表,则不需要为它分配存储空间,反之; 3、初始值必须是常量{2,3,4},初始化可以短于所初始化的结构体,任何“剩余的”成...

地中海蒲公英
2014/07/16
0
0
聊聊oracle(三)plsql语句、游标

plsql语句 --求jobs表中总裁最低工资的编号,如果对应记录太多抛出相应异常,没有记录则抛出没有记录的异常 / --定义记录类型的变量 / --%rowtype,将变量的类型设置为表类型 / --if elseif ...

你我他有个梦
2015/12/18
9
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
2
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
2
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
54
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部