C语言程序设计 作者 郑山红 李万龙 宋立明 侯秀萍 第7章 结构体与共用体.pptVIP

C语言程序设计 作者 郑山红 李万龙 宋立明 侯秀萍 第7章 结构体与共用体.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 结构体、共用体和枚举 本章目标 了解结构体和共用体的概念以及定义数据类型的使用方法 掌握结构体类型的定义和使用方法 熟悉枚举类型的定义和使用方法 掌握用共用体和结构体解决特定问题 问题的引出 在日常生活中,我们常常会遇到一些需要填写的登记表,如住宿表、成绩表、通讯地址等等。 在职员通讯表中,通常需要登记姓名、工作单位、家庭住址、邮编、电话号码和e-mail等数据项,如图7-1所示。 7.1 结构体类型的定义 7.1 结构体类型的定义 【例7-1】 用户自定义一个结构体类型来描述职员通讯表中的信息。 程序: 7.1 结构体类型的定义 long box; /* 邮编 */ long phone; /* 电话号码 */ char email[30]; /* e-mail */ }; 7.2 结构体类型变量的定义和引用 1、结构体类型变量的定义 结构体类型变量定义的一般形式如下: 结构体类型名 变量名列表; 可以采取以下3种方法定义结构体类型变量: (1)先定义结构体类型,再定义变量名 struct Employee employee1, employee2; 由于结构体类型变量汇集了各类不同数据类型的成员,所以结构体类型变量的初始化就略显复杂。 结构体类型变量的定义和初始化为: struct Employee { char name[20]; char department[30]; char address[30]; long box; long phone; char email[30]; }; struct Employee employee1 = {”liping”, ”Business department”, ”Changchun China”,130000 ”liping@163.com”}; 结构体变量employee1中的各个成员分别赋予初值如下:成员“name”初始化为”liping”,成员“department”初始化为”Business department”,成员“address”初始化为”changchun China”,成员“box”初始化为130000,成员“phone”初始化成员“e-mail”初始化为”liping@163.com”,其存储示意图如图7-2所示。 应遵守以下规则: 不能将一个结构体变量作为一个整体进行输入和 输出。例如,已定义student1和student2为结构体 变量并且它们已有值。不能这样引用: printf (“%d,%s,%c,%d,%f,%s\n”,student1);只能 对结构体变量中的各个成员分别进行输入和输出。 (2) 对结构体变量的成员可以像普通变量一样进行各 种运算(根据其类型决定可以进行的运算)。例如: student2.score=student1.score;   sum=student1.score+student2.score;   student1.age++;   ++student1.age; (3) 可以引用结构体变量成员的地址,也可以引用结 构体变量的地址如:scanf(%d“,student1.num); printf(“%o”,student1);但不能用以下语句整体 读入结构体变量,如: scanf(%d,%s,%c,%d,%f,%s“,student1); 7.3 包含结构体的结构体 在定义结构体方面,C 语言为提供了极大的灵活性。例如,可以定义一个结构体,其成员变量是另外一个结构体,或者可以定义成员变量为数组类型的结构体。 前面已经看到如何把年月日组合成为date结构体,在某些应用场合,可能还需要把年月日与职员通讯表结合起来,例如,当需要记录职员生日信息时,可以修改前面定义的结构体类型struct Employee,增加一个struct date类型的成员。 注:C允许结构体类型的嵌套定义(即结构体类型中包含另一个结构体类型的变量),但不允许递归定义。也就是说,在一个结构体类型中,不允许成员是自身结构体类型的变量,但允许成员是

文档评论(0)

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

1亿VIP精品文档

相关文档