第9章 结构体、共用体和枚举

第9章 结构体、共用体和枚举

ID:41887234

大小:1.20 MB

页数:66页

时间:2019-09-04

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

《第9章 结构体、共用体和枚举》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第9章结构体、共用体与枚举了解结构体、共用体和枚举类型的特点熟练掌握结构体类型、变量、数组、指针变量的定义、初始化和成员的引用方法掌握共用体和枚举类型、变量的定义和引用掌握用户自定义类型的定义和使用9.1结构体【问题】如何表示下面的数据?可以定义以下变量来分别表示上面的数据:charname[10];intage;charsex[3];charxh[11];charnation[20];charaddress[20];charmobile[20];由于必须类型相同才能构造成数组,显然以前学习的数据类型都不能很好地解决问题9.1.

2、1结构体类型的定义结构体类型的定义形式为:struct类型名{成员说明表列};例如:structstudent/*结构体类型名*/{charname[10];/*结构体成员,以下都是*/intage;charsex[3];charxh[11];charnation[20];charaddress[20];chartel[20];};9.1.1结构体类型的定义struct是结构体关键字,结构体类型定义中的每个成员项都有确定的类型和名称,称为结构体类型的“域”,每个域的定义后面要有“;”号。结构体类型由用户定义,所以结构体类型不是固

3、定结构的类型,用户可以定义不同结构的结构体类型,也可以定义相同结构的结构体类型,系统均认为是不同的结构体类型,例如下面是两个不同的结构体类型,虽然aa和bb的结构是一样的:structaa{inta;intb;charc;}structbb{inta;intb;charc;}9.1.2结构体变量的定义和初始化定义结构体变量的方法可以如下:用已定义的结构体类型名定义变量。例如:structstudentwang,zhang;在定义结构体类型的同时定义结构体变量。例如:structstudent/*结构体类型名*/{charname

4、[10];/*结构体成员,以下都是*/intage;charsex[3];charxh[11];charnation[20];charaddress[20];chartel[20];}wang,zhang;9.1.2结构体变量的定义和初始化不定义结构体类型名,直接定义结构体变量。例如:struct{charname[10];intage;charsex[3];charxh[11];charnation[20];charaddress[20];chartel[20];}wang,zhang;结构体类型的长度结构体类型的长度可以用s

5、izeof运算符计算出来,形式为:sizeof(结构体类型名)或者sizeof(变量名)如sizeof(structstudent)或sizeof(wang),在TC和VC下,结果分别是:86和88。(*)结构体长度和字节对齐问题对齐内存空间都是按照字节(byte)来划分的,虽然理论上对任何类型的变量的访问可以从任何地址开始,但实际情况并非如此,而是需要按照一定的规则在空间上排列,这就是对齐。对齐的规则与编译器和操作系统有关,没有统一的规则。例如,在VC下:structstudent{charc;inta;};其实际存储如右图:

6、结构体类型的嵌套structdate{intyear;intmonth;intday;};structstudent{charname[10];intage;charsex[3];charxh[11];structdatebirthday;charnation[20];charaddress[20];chartel[20];}wang,zhang;structstudent{charname[10];intage;charsex[2];charxh[11];struct{intyear;intmonth;intday;}birt

7、hday;charnation[20];charaddress[20];chartel[20];}wang,zhang;结构体类型变量的初始化定义的同时初始化structstudentwang={"王云平",18,"男","2010010001","汉族","北京","13901000001"},zhang={"张丽",18,"男","2010010002","汉族","广州","13901000002"};注意初始化的数据及其类型要与各个成员一一对应,对于包含嵌套结构体类型的变量,其嵌套部分的初始化也按顺序赋初值structs

8、tudentwang={"王云平",18,"男","2010010001",2010,3,3,"汉族","北京","13901000001"};9.1.3结构体变量的引用数组元素的引用采用数组名和下标结合的引用方法,例如a[2]、b[5]等。结构体变量其成员的引

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

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

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