C语言程序设计实例教程(第2版)丁爱萍第10章 结构体和共用体.ppt

C语言程序设计实例教程(第2版)丁爱萍第10章 结构体和共用体.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 结构体和共用体 10.1 结构体类型 10.2 共用体 习题10 10.1 结构体类型 在C语言中,结构体(structure)类型是将若干个类型相同或不同的数据组合成一个有机的集合。例如,一个学生的记录需包括学号、姓名、性别、年龄和地址等成员。这样就可以将学号、姓名、性别、年龄和地址等成员组合起来定义为一个结构体变量,共同说明一个学生的信息。 10.1.1 结构体类型定义 并不是只有一种结构体类型,用户可以根据具体情况,自己定义一种新的数据类型,只要结构体类型名不同,就是不同的数据类型。用户可以使用自己定义的或是他人提供的结构体类型来定义变量。 使用结构体变量前,要先定义该结构体类型,再定义结构体变量,然后才能对结构体变量进行操作。结构体类型定义的一般格式为 struct 结构体名 { 类型标识符 成员名列表 ; 类型标识符 成员名列表 ; 类型标识符 成员名列表 ; } ; 例如,定义一个结构体struct student类型: struct student { int num; /* 学号 */ char name[20]; /* 姓名 */ char sex; /* 性别 */ int age; /* 年龄 */ float score; /* 成绩 */ char addr[30]; /* 地址 */ }; 其中,struct是关键字,不能省略。student是定义的结构体类型名。结构体中的每一项数据,称为结构体“成员”(member)或“分量”。注意,结构体中的成员也可以是某种结构体类型。“结构体”在大多数资料中被称为“结构”。 10.1.2 结构体变量的定义、引用和初始化 1. 结构体变量的定义 结构体类型变量的定义与其他类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,因此,结构体类型变量的定义形式就增加了灵活性,共计有3种形式,分别介绍如下。 (1) 先定义结构体类型,再定义结构体类型变量。 例如: struct stu /* 定义学生结构体类型 */ { char name[20]; /* 学生姓名 */ char sex; /* 性别 */ long num; /* 学号 */ float score[3]; /* 三科考试成绩 */ }; struct stu student1,student2; /* 定义结构体类型变量 */ 首先定义了一种新的数据类型称为是struct stu类型,或称为结构体stu类型。这种类型的变量共有4个成员(或分量)。然后定义了2个struct stu类型的变量,分别是student1和student2。student1和student2在内存中共占用37个字节的内存空间。其结构体变量的存储情况如图10.1所示。 (2) 定义结构体类型的同时定义结构体类型变量。 例如: struct student { int num; /* 学号 */ char name[20]; /* 姓名 */ char sex; /* 性别 */ int age; /* 年龄 */ char addr[30]; /* 地址 */ }student1, student2 ; 也可以再定义如下变量。 struct student student3; 用此结构体类型,同样可以定义更多的该结构体类型变量。 (3) 直接定义结构体类型变量。 例如: struct { char name[20]; /* 学生姓名 */ char sex; /* 性别 */ long num; /* 学号 */ float score[3]; /* 三科考试成绩 */ } person1, person2; /* 定义该结构体类型变量 */ 用此方法虽然比较简洁,但是此法由于无法记录该结构体类型,因此除直接定义外,不能再定义该结构体类型变量。注意,在实际应用中经常会出现一个数组的成员是另一个结构体变量的情况,例如: struct date /* 日期结构 */

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档