第10章结构、联合与枚举类型

第10章结构、联合与枚举类型

ID:43804214

大小:1.20 MB

页数:83页

时间:2019-10-14

第10章结构、联合与枚举类型_第1页
第10章结构、联合与枚举类型_第2页
第10章结构、联合与枚举类型_第3页
第10章结构、联合与枚举类型_第4页
第10章结构、联合与枚举类型_第5页
资源描述:

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

1、结构、联合与枚举类型第十章第一节结构类型第二节结构数组第三节结构指针第四节在函数之间传递结构第五节联合类型第六节枚举类型第七节用typedef定义类型第八节链表基础第九节举例问题的引出用学号、姓名、性别、年龄、住址等属性来描述一个学生。intnum;charname[20];charsex;intage;charaddr[30];问题一:在程序中这些变量没有的内在联系。问题二:如果有很多的学生,就可能造成混乱。一、结构类型的概念第一节结构类型这些数据存放在内存的某个区域。将此区域统一来使用,形成了结

2、构体的概念。结构是逻辑上相互联系的一组分量的集合。结构中的分量可以有不同的类型数据,结构中的分量称为结构的成员。numnamesexageaddr10010LiFunM18Beijing第一节结构类型比较简单数据类型时的变量说明语句:inti;struct结构体名{数据类型成员名1;数据类型成员名2;……数据类型成员名n;};二、结构类型的定义struct为关键字结构体名是用户定义的类型标识。{}中包围的是组成该结构的成员。成员的数据类型既可以是简单的数据类型(int、char、float、doub

3、le...),也可以是复杂的数据类型(数组类型和结构类型)。第一节结构类型结构定义实例为了描述日期可以定义如下结构:structdate{intyear;/*年结构成员的*/intmonth;/*月数据类型是*/intday;/*日整型*/};为了处理通信录,可以定义如下结构:structaddress{charname[30];/*姓名。字符数组*/charstreet[40];/*街道名称*/charcity[20];/*城市*/charstate[2];/*省市代码*/unsignedlong

4、zip;/*邮政编码。*/};第一节结构类型在定义了某种类型的结构体后,就可以使用该类型的结构变量。用类型说明语句说明结构变量struct结构体名结构变量名;系统为所说明的结构变量按照结构定义时说明的组成(成员分量),分配存储数据的实际内存单元。例:将变量today说明为date型的结构变量:structdatetoday;说明多个address型的结构变量:structaddresswang,li,zhang;结构变量同样有存储类型,存储特性与一般变量完全相同。三、结构变量的说明第一节结构类型结构

5、变量占用内存情况结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员的占用内存的长度之和。结构变量today和wang占用在内存的情况如图所示。2字节2字节2字节today(structdate)6个字节yearmonthdaywang(structaddress)96个字节30字节40字节20字节2字节4字节namestreetcitystatezip表示int表示char表示unsignedlong第一节结构类型关于结构类型的说明类型与变量是不同的概念。在定义结构变量时一

6、般先定义一个结构类型,然后定义变量为该类型。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。对结构中的成员,可以单独使用,它的作用与地位相当于普通变量。成员也可以是结构变量。成员名可以与程序中的变量名相同时,二者不代表同一对象。第一节结构类型在定义结构时说明结构变量例如:structstudent{intnum;charname[20];charsex;intage;charaddr[30];}student1,student2;直接说

7、明结构变量例如:struct{charname[20];charaddr[30];}zhang;第一节结构类型结构成员是另一个结构例如:structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}student1,student2;daymonthyearagesexnamnumaddbirthdaybirthdaybirt

8、hdaybirthday第一节结构类型访问结构中的成员是通过成员的名字,称为“按名引用”。在程序中使用结构中成员的方法为:结构变量名.成员名称例:将“92.10.01”送入today,对其各个成员分别赋值:today.year=92;today.month=10;today.day=1;指明结构成员的符号“.”是运算符,含义是访问结构中的成员。“.”操作的优先级在C语言中是最高的。其结合性为从左到右。四、引用结构变量的成员第一节结构类型例:用结构描述一个人的基本情况,

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

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

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