第5章 结构体、共用体与枚举

第5章 结构体、共用体与枚举

ID:44959132

大小:282.50 KB

页数:49页

时间:2019-11-06

第5章 结构体、共用体与枚举_第1页
第5章 结构体、共用体与枚举_第2页
第5章 结构体、共用体与枚举_第3页
第5章 结构体、共用体与枚举_第4页
第5章 结构体、共用体与枚举_第5页
资源描述:

《第5章 结构体、共用体与枚举》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、教学目标:通过本章学习,要求学生能熟练运用结构体这一新的数据结构编制较复杂的应用程序。同时掌握共用体、枚举类型和用户自定义类型typedef的使用方法。本讲重点:1.结构体变量的定义、引用、初始化;2.typedef自定义结构体类型的方法。教学方法:理论教学与实践教学相结合。第5章结构体、共用体与枚举5.1结构体类型与变量5.2结构体数组5.3结构体与指针5.4自定义类型5.5共用体类型与变量5.6枚举类型与变量5.7程序设计举例一组类型相同的相关的数据我们可以用数组来存储,而类型不同又相关的数据如何来处理呢?学号num姓名name性别sex年龄age成绩score地址addrC引入一种能集

2、中不同数据类型于一体的数据类型—结构体类型,该类型由用户自己定义。5.1结构体类型与变量整型字符数组字符f-女m-男整型实型字符数组结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-------自定义数据类型7.1.1结构体类型定义结构体类型定义的一般形式为:struct[结构体类型名]{类型1成员变量1;类型2成员变量2;…………类型n成员变量n;};例如:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};整型字符数组字符F-女M-男整型实型字符数组学号num姓名name性别se

3、x年龄age成绩score地址addr结构体类型合法表示符,相当于变量名说明:结构体类型由“struct结构体类型名”说明和引用。相同类型的成员可以合在一个类型下说明。如structstudent{intnum,age;charname[20],sex,addr[30];floatscore;};3.类型定义不分配内存。结构体类型定义描述结构的组织形式,不分配内存。4.结构体类型可以嵌套定义,即在结构体类型定义中又有结构体类型的成员。如structstudent{intnum,age;charname[20],sex,addr[30];};地址addr成绩score年龄age性别sex姓名n

4、ame学号num数学物理语文英语struct{floatchinese,math,physics,english;}score;/*无名结构体类型定义的成员score*/5.结构体类型有作用范围的,有全局和局部之分。在一个函数中定义的结构体类型是局部的,只能用于在函数体中定义结构体变量;在函数之外定义的结构体类型是全局的,可以在其后的任意位置定义结构体类型变量。一般写在函数前面定义。5.1.2结构体变量的定义和引用1. 结构体变量的定义有如下三种形式(以前节的结构体类型student为例):1)先定义结构体类型,再定义结构体类型变量,如structstudenta,b,c;2)定义结构体类型

5、同时定义结构体类型变量,如structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}a,b,c;3)定义无名结构体类型同时定义结构体类型变量,如struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}a,b,c;因为没有类型名称,这种方法只能在定义类型时定义变量,所以这种结构体类型无法重复使用。2.结构体变量的存储:系统为结构体变量分配一个合适大小的地址连续的存储空间,按成员定义的先后顺序存放各个成员的值。内存空间的大小等于各

6、个成员所占地址空间的总和。例如structstudenta;,假设int占2个字节,请问a占用_____字节的内存空间。2+20+1+2+4+30=59namenumsexagescoreaddr2字节2字节20字节1字节4字节30字节……..structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};a的存储空间的示意图3.结构体变量赋初值1)结构体变量的初始化-定义的同时赋初值各成员的初值以集合方式写出,即:structstudent{intnum;charname[20];charsex;inta

7、ge;floatscore;charaddr[30];};structstudenta={4102,"LiPing",’F’,21,80,"BeijingRoad11#"};2)定义之后根据需要赋初值此时,不允许整体赋值,仅能对各个成员逐一赋值。structstudenta;a={4102,"LiPing",'F',21,80,"BeijingRoad11#"};结构体成员的引用成员的引用方式:逐级引用到最底

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

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

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