c-chap10 结构、联合和枚举.ppt

c-chap10 结构、联合和枚举.ppt

ID:49380224

大小:528.50 KB

页数:65页

时间:2020-02-05

c-chap10 结构、联合和枚举.ppt_第1页
c-chap10 结构、联合和枚举.ppt_第2页
c-chap10 结构、联合和枚举.ppt_第3页
c-chap10 结构、联合和枚举.ppt_第4页
c-chap10 结构、联合和枚举.ppt_第5页
资源描述:

《c-chap10 结构、联合和枚举.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十章结构、联合和枚举110.1引言10.2结构的定义10.3结构变量的定义10.4结构变量的初始化10.5访问结构变量成员10.6结构和函数10.7类型定义typedef10.8联合10.9枚举常量提纲210.1引言在日常生活中,我们经常会用到一些表格。例如,下图是一张某个学校的学生成绩管理表:为了用计算机程序实现对上述表格的管理,需要先将上述表格进行存储。如何存储?学号姓名性别入学时间英语高数音乐1张三男20088090662李四男20087867773王五男20089087804……5……310

2、.1引言根据以前的知识,可以定义若干数组来存储上述信息:intstudentID[10];//存储学生学号charstudentName[30][10];//存储学生姓名charstudentSex[30][3];//存储学生性别inttimeOfEnter[30];//存储入学年份intscoreEnglish[30];//存储英语成绩intscoreMath[30];//存储数学成绩intscoreMusic[30];//存储音乐成绩410.1引言存在的问题:1.任何一个学生的信息分散在内存各处,

3、要了解一个学生的信息,必须到各个数组的相应元素中去查找,很不方便。而且因为内存不集中,所以查找效率不高。2.存储结构显得比较零散,不易管理。而30个学生的信息可以抽象为线性表(线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列),每一个学生的信息是表中的一个元素。有没有可能用一个长度为30的一维数组来存储学生成绩表,每个数组元素存储一个学生的信息(包括基本信息和成绩)?如果可以,那一个数组元素存储了多个不同类型的数据,那数组元素的类型又该如何定义?510.1引言如果可以,那对于前面介绍的洗牌

4、发牌模拟程序,也可以用一个长度为52的一维数组来存储一幅牌,每个数组元素存储两个指针,分别指向表示该张牌花色和面值的字符串。suitsuit[0]suit[1]suit[2]suit[3]face……face[0]face[11]face[12]第6张牌是红心Queen610.1引言C语言在产生的时候,设计者就针对此类问题,设计了一系列用户自定义数据类型。用户可以根据具体问题的需要,设计符合自己要求的新的数据类型。结构和联合就是两种用户自定义的数据类型,结构可以用来满足我们上述问题的需要。710.1引

5、言10.2结构的定义10.3结构变量的定义10.4结构变量的初始化10.5访问结构变量成员10.6结构和函数10.7类型定义typedef10.8联合10.9枚举常量提纲810.2结构的定义一、结构的定义结构是用其他类型的对象构造出来的派生数据类型(注意:结构是一种数据类型)。struct结构名{数据类型数据项1;数据类型数据项2; ……数据类型数据项n; };910.2结构的定义上述成绩管理的例子可以定义如下形式的结构:structSTUDENT{charstudentID[10];//存储一个学生

6、的IDcharstudentName[10];//存储一个学生的姓名charstudentSex[3];inttimeOfEnter;intscoreEnglish;intscoreMath;intscoreMusic;}定义了一个名为STUDENT的结构(类型)。该结构有7个数据项。用该结构定义的结构变量可以用来存放一个学生的信息,包括学号、姓名、性别、入学年份、英语成绩、数学成绩和音乐成绩。1010.2结构的定义structcard{char*face;char*suit;};定义了一个名为car

7、d的结构(类型),由face和suit两个数据项组成。用该结构定义的结构变量可以用来存放一张牌的信息。1110.2结构的定义1.“结构名”和“数据项”的命名规则,与变量名相同。2.数据类型相同的数据项,既可逐个、逐行分别定义,也可合并成一行定义。structcard{char*face,*suit;};3.结构中的数据项,可以是不同类型(和数组不同)。既可以是整形、字符型、浮点型、指针,也允许是数组或者另一个已经定义的结构。【链接】4.1个数据项称为结构的1个成员(或分量)。同一结构中的成员不能同名,

8、不同结构中的成员可以同名。1210.2结构的定义5.结构既可以在函数外定义,也可以在函数内定义。但函数内定义的结构只能在本函数中使用。6.不能在structcard结构中定义structcard类型的变量。但可以定义指向structcard类型的指针(称为自引用结构)。structcard{char*face;char*suit;structcardcard;×};structcard{char*face;char*suit;structcard*car

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。