结构体-Read.PPT

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构体-Read

第18章 结构体 通过本章的学习中,要重点掌握以下知识点: 结构体的概念及用途; 结构体类型的声明及其字长; 结构体变量的定义、访问和赋值; 结构体数组和结构体指针的使用。 18.1 结构体 结构体(struct)在C语言中用于处理多个单一数据组成的数据集合。在复杂的数据处理中,结构体是必不可少的。结构体的使用是C语言编程的一个重要部分。本节将先讨论结构体的概念,再介绍如何定义结构体变量,最后使用范例来说明结构体的字节长度。 18.1.1 结构体类型的概念 结构体是指包含多个单一数据的数据集合。在一些应用中,需要处理的数据往往是若干个单一数据的集合。例如,一个完整的个人信息往往需要包含姓名、年龄、性别、职业、地址、电话等信息。如果使用之前学习的简单数据类型来表示时间信息,就至少需要使用6个变量来实现,每次使用的时候都要访问至少6个变量,这是一个相当烦琐的过程。 18.1.1 结构体类型的概念 C语言中提供了结构体数据类型作为一个集合来处理这种复杂数据,一个结构体可以将多个单一信息结合在一起作为一个整体来使用。使用结构体时,首先要声明需要的结构体类型,其一般形式如下: struct 结构体名 { 数据类型1 结构体成员1; 数据类型2 结构体成员2; 数据类型3 结构体成员3; … }; /* 分号不可缺少 */ 18.1.1 结构体类型的概念 结构体名相当于这个结构体的标记,它与标识符struct共同组成这个结构体的名称。每一个结构体可以包含很多成员,每一个成员都有一个数据类型,这些成员可以被声明为除该结构体类型本身外的任意有效数据类型。例如,对于上述的时间信息,可以声明如下的结构体类型来处理。 18.1.1 结构体类型的概念 01 struct personal_infor { 02 char name[SIZE_N]; /* 姓名 */ 03 int age; /* 年龄 */ 04 char gender; /* 性别 */ 05 char profession[SIZE_P]; /* 职业 */ 06 char address[SIZE_A]; /* 地址 */ 07 char telephone[SIZE_T]; /* 电话 */ 08 }; /* 分号不可省略 */ 18.1.1 结构体类型的概念 这个结构体包含了6个结构体成员,需要注意的是,这个数据类型的名称为struct personal_infor,而不是personal_infor。此外,这时得到的只是一个数据类型,要处理数据还要定义这种类型的变量。 18.1.2 定义结构体变量 声明了结构体类型后,便可以使用该类型来定义结构体变量。C语言中定义结构体变量有三种形式,其实这也是声明结构体类型的三种形式: 注意:本节的结构体类型声明中的成员列表声明都与第18.1.1节中的struct personal_infor一样。 18.1.2 定义结构体变量 1.声明结构体类型,并定义结构体变量 例如,如果要定义personal_infor结构体变量,可以使用如下代码: 01 struct personal_infor { /* 声明结构体数据类型 */ 02 char name[SIZE_N]; /* 姓名 */ 03 int age; /* 年龄 */ 04 char gender; /* 性别 */ 05 … /* 省略 */ 06 }; 07 struct personal_infor Raul, Philip; /* 定义结构体变量 */ 08 struct personal_infor Joe; /* 再定义一个变量 */ 18.1.2 定义结构体变量 这种形式的定义方式可以多次定义结构体变量,如上第7行定义了Raul,在第8行可以再次使用该数据类型名来定义另一个变量Joe。需要注意的是,必须同时使用标识符struct和结构体名来定义结构体变量,如下定义语句是错误的: personal_infor Erie; /* 错误 */ 这种形式也可以在声明结构体类型的同时定义结构体变量,如下所示。 01 struct personal_infor { /* 声明结构体数据类型 */ 02 char name[SIZE_N]; /* 姓名 */ 03 int age; /* 年龄 */ 04 char gender; /* 性别 */ 05 …

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档