计算导论与程序设计课件-chap10结构、联合和枚举.ppt

计算导论与程序设计课件-chap10结构、联合和枚举.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 14.4 联合 五.联合的用途 学生基本信息包括:姓名、出生日期、学号和班级 教师基本信息包括:姓名、出生日期、工号、职称和开始 工作年 * 14.4 联合 struct student{ /*学生信息结构类型*/ char name[10]; /*姓名*/ struct date birthday; /*生日*/ char no[7]; /*学号*/ char class[5]; /*班级*/ } ; struct teacher{ /*教师信息结构类型*/ char name[10]; /*姓名*/ struct date birthday; /*生日*/ char no[4]; /*工号*/ char class[5]; /*职称*/ int startYear; /*开始工作年*/ } ; 方法1:分别针对学生和老师定义结构 * 方法2:采用联合。 14.4 联合 用于区分是学生还是老师 * /*将学生和老师的特殊信息分别定义成结构*/ struct student{ /*学生特殊信息结构类型*/ char no[7]; /*学号*/ char class[5]; /*班级*/ } ; struct teacher{ /*教师特殊信息结构类型*/ char no[4]; /*工号*/ char class[5]; /*职称*/ int startYear; /*开始工作年*/ } ; 14.4 联合 * union roletype{/*描述不同类人员信息的联合*/ struct student studentField; struct teacher teacherField; } struct person{ char name[10]; /*姓名*/ struct date birthday; /*生日*/ int roletype;/*角色*/ union roletype roleinfo; /*不同角色的信息*/ } 14.4 联合 * 14.4 联合 #define STUDENT 0 #define TEACHER 1 main() { struct person p; ……//读入学生或者教师的信息到结构变量p中。 switch (p.roletype){ case STUDENT: 处理学生信息语句; break; case TEACHER: 处理教师信息语句; break; default: printf(“invalid roletype!\n”); } …… } * 14.1 引言 14.2 结构类型 1. 结构类型的定义 2. 结构变量的定义与初始化 3. 访问结构变量成员 4. 结构作为函数的参数 5. 结构数组 14.3 类型定义typedef 14.4 联合类型 14.5 枚举类型 提纲 * 14.5 枚举常量 目前为止,我们可能写出的是这样的代码: #define JAN 1 #define FEB 2 …… #define DEC 12 for(month=JAN;month=DEC;month++) printf(%2d,%11s\n,month, monthName[month]); 要定义12个常量!能否有其他方法? * 14.5 枚举常量 枚举是C语言提供的一种用户自定义数据类型。 enum months{JAN,FEB,MAR,APR,MAY,JUN, JUL,AUG,SEP,OCT,NOV,DEC} 类型名:enum months 类型的取值范围:{JAN,FEB,MAR,APR,MAY,JUN, JUL,AUG,SEP,OCT,NOV,DEC} 其中:JAN值为0,FEB值为1,MAR值为2,依次类推 枚举常量是自动设置值的符号常量。除非指定了起始值,否则枚举常量的值从0开始,后续的值依次加1。 enum months{JAN=1,FEB,MAR,APR,MAY,JUN,

文档评论(0)

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

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

1亿VIP精品文档

相关文档