9 结构体与共用体

9 结构体与共用体

ID:43292134

大小:360.50 KB

页数:86页

时间:2019-10-08

9 结构体与共用体_第1页
9 结构体与共用体_第2页
9 结构体与共用体_第3页
9 结构体与共用体_第4页
9 结构体与共用体_第5页
资源描述:

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

1、第9章结构体与共用体C语言的数据类型整型int基本类型字符型char实型float,double枚举类型enum数据类型数组[]构造类型结构体struct共用体union指针*空类型void对于由多种不同类型的数据组成的数据实体,C语言可以用“结构体”数据类型来描述。每一个成员可以是一个简单数据类型,也可以是一个结构体数据类型。9.1定义一个结构的一般形式9.1.1数据类型与变量的区别数据类型只是说明了一个数据结构的模式,但不定义变量,并不要求分配实际的存储空间。变量具有三要素:名字、数据类型、值,变量要分配存储空间。例:inta=100。9.1.

2、2结构体类型定义的一般形式结构体类型的定义形式为:struct结构体类型名{成员说明列表};其中,花括号内的内容是该结构体类型的成员说明,每个成员说明的形式为:类型符成员名;例如,由年、月、日组成的结构体类型为:structdate{intyear;intmonth;intday;};又如,一个职工实体的结构体类型为:structemployee{longno;/*编号*/charname[10];/*姓名*/charsex;/*性别*/structdatebirth;/*出生日期*/chareducation[20];/*文化程度*/double

3、salary;/*工资*/longIDcard;/*身份证号码*/charaddr[40];/*住址*/};structemployee是程序设计者自己定义的类型,它与系统预定义的标准类型(如int,char,float等)一样,可以用来定义变量,使变量具有structemployee类型。例如:structemployeeworker,workers[20];例9.1分析以下程序,指出程序运行结果。voidmain(){structemployeeworker,workers[20];printf("%d,%d",sizeof(structd

4、ate),sizeof(structemployee));printf("%d,%d",sizeof(worker),sizeof(workers));}输出结果:6,9393,1860结构体中的各成员变量占用独立的存储空间,结构体类型的大小是由各成员变量所占用的存储空间的总和来决定的。9.2结构体类型变量9.2.1结构体类型变量的定义1.先定义结构体类型,再定义结构体类型变量structemployeeworker,workman;为使用方便,在程序开头,加上命令:#defineWORK_TYPEstructemployeeWORK_TYPE

5、{longno;charname[10];charsex;structdatebirth;chareducation[20];doublesalary;longIDcard;charaddr[40];};然后就可以直接用WORK_TYPE定义变量,例如:WORK_TYPEteacher,doctor;用这样的方法定义变量和用int、float定义变量的形式相仿,就不必再写关键字struct如果程序规模比较大,可以将对结构体类型的定义集中放到一个以.h为扩展名的头文件中,哪个源文件需要用到此结构体类型,则可用#include命令将该头文件包含到本文件

6、中,这样做便于结构体类型的装配、修改及使用。2.在定义结构体类型的同时定义结构体变量structemployee{longno;charname[10];charsex;structdatebirth;chareducation[20];doublesalary;longIDcard;charaddr[40];}teacher,doctor;一般形式:struct结构体类型名{成员说明表列}变量名表列;3.直接定义结构体类型变量struct{longno;charname[10];charsex;structdatebirth;chareducat

7、ion[20];doublesalary;longIDcard;charaddr[40];}teacher,doctor;一般形式:struct{成员说明表列}变量名表列;这种形式虽然简单,但不能在再需要时,使用所定义的结构体类型。以上三种方法中定义的结构体变量teacher,doctor都具有下图所示的结构。9.2.2结构体变量的使用引用一个结构体变量有两种方式:通过结构体变量名和通过指向结构体的指针变量。”.”和”->”两种符号。1.由结构体变量名引用其成员结构体变量名.成员名例如:teacher.no=124260;如果成员本身又是一个结构则

8、必须逐级找到最低级的成员才能使用。例如:teacher.birth.year=11;2.由指向结构体的指针变量引用结构体成

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

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

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