网站大量收购闲置独家精品文档,联系QQ:2885784924

[数学]第8章 结构体与共用体.ppt

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

重庆邮电大学移通学院 主讲:刘达明 第19次课 上课时间:2011年11月15日 第12周星期二 上午78节 上课地点:2101教室 上课内容:结构体的基本概念、结构体数组 第8章内容 结构体 结构体变量 使用typedef定义数据类型的别名 结构体数组 结构体指针 共用体 共用体变量 共用体数组 共用体指针 枚举类型 位运算 位运算符 位运算 位段 例:求3学生4门课程的最高分 思考题 例:查询学生信息问题 问题分析 数组解决方式 int studentId[30]; /* 最多可以管理30个学生, 每个学生的学号用数组的下标表示*/ char studentName[30][10]; int studentSex; int scoreMath[30]; /*数学课的成绩*/ int scoreEnglish[30]; /*英语课的成绩*/ int scoreComputer[30];/*计算机原理课的成绩*/ int scoreC[30]; /*C语言课的成绩*/ int scoreTelecomm[30]; /*通信网的成绩*/ int aveage[30]; /*平均成绩*/ 数组解决方式 数据的内存管理方式 希望的内存分配 问题及分析 查询学生信息问题的实现 查询学生信息问题的实现(续) 查询学生信息问题的实现(续) 查询学生信息问题的实现(续) 结构体 结构体类型 结构体类型定义 结构体变量的定义 结构体变量的定义 结构体变量的定义 结构体说明 结构体变量的引用 结构体变量的初始化 结构体变量的初始化 结构体变量的初始化 例:输出5门课平均成绩 平均成绩程序 结构体变量作函数参数 例:输出学生成绩等信息 使用typedef定义数据类型的别名 声明一个新的类型别名的方法 结构体数组 结构体数组的定义 结构体数组的引用 结构体数组的初始化 结构体数组作函数参数 输出结构体中的信息 结构体中的指针 在结构体中定义指针和定义其他的一般变量的方式是一样的,使用的情况也一样,比如如果要在学生结构体中增加一个数据成员表示地址,可以定义如下: struct student { int num; char *name; char sex; float score; }; 指向结构体的指针 如果通过指向结构体的指针访问上面定义的结构体student的各个数据成员,代码如下: struct student *p; struct student stu; p=stu; 定义了指向结构体的指针p后,如果要使用p访问结构体中的变量采用的方式均为箭头方式,也就是说p-num和stu.num的含义和用法是完全一样的。其中:符号“-”为指向结构体成员运算符,其级别最高,结合方向从左到右。 引用结构体成员的三种方法 指向结构体数组的指针 指向结构体数组的指针 使用指针输出结构体数组信息 自引用结构 结构指针作函数参数 例:设计一个洗牌和发牌的程序 洗牌和发牌程序 洗牌和发牌程序(续) 思考题 习题 教材P172:习题一、填空题(自由练习) 教材P173:习题二、选择题(自由练习) 第20次课 上课时间:2011年11月17日 第12周星期四 上午78节 上课地点:2106教室 上课内容:共用体、枚举类型 如何读取一个整型数据的高字节数据 问题分析 读取整形数据问题程序 共用体 声明共用体类型 共用体变量的定义 共用体变量的引用 共用体与结构体 输出教师和学生信息 输出教师与学生信息程序 输出教师与学生信息程序(续) 枚举类型 枚举类型说明 枚举类型例子 enum weeks {SUN, MON, TUE, WED, THU, FRI, SAT}; enum weeks today; enum response {no, yes, none}; enum response answer; today = TUE; answer = yes; if (answer == yes) printf(Today is Tuesday.\n); else printf(Today is NOT Tuesday.\n); 一个完整的枚举类型例子 /*LI8_9.c*/ #include stdio.h void main() { enum weeks {SUN, MON, TUE, WED, THU, FRI, SAT}a,b,c; a=SUN; b=MON; c=TUE; printf(%d,%d,%d\n,a,b,c); } 思考题 前面讲的

文档评论(0)

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

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

1亿VIP精品文档

相关文档