复合数据类型

复合数据类型

ID:43972825

大小:472.50 KB

页数:130页

时间:2019-10-17

复合数据类型_第1页
复合数据类型_第2页
复合数据类型_第3页
复合数据类型_第4页
复合数据类型_第5页
资源描述:

《复合数据类型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章复合数据类型9.1结构体类型9.2共同体类型9.3位段结构类型9.4枚举类型9.5自定义类型(typedef)9.6程序举例习题9开始结束本章学习目标l迄今为止,我们已经介绍了C语言中的基本数据类型(整型、实型、字符型)及派生类型(数组和指针)。但实际处理问题时,只有这些数据类型是不够的,故而C语言给用户提供了自己声明数据类型的权利,这些类型称为构造类型。本章将介绍四种构造类型:结构体类型、共同体类型、枚举类型及自定义类型。返回本章首页9.1结构体类型9.1.1结构体变量9.1.2结构体数组9.1.3结构体指针9.1.4单链表返回本章首页9.1.1结构体变量一、结构体类型的声明结构

2、体类型声明的一般形式:struct结构体名{成员列表};返回本节9.1.1结构体变量其中,①“struct”是C语言的关键字,是结构体类型的标志;②“结构体名”称为结构标记,即代表花括号内的声明,可以用它作为该声明的简写形式,书写要符合C语言标识符命名规则;③“成员列表”可以是若干个不同类型的变量、数组;④结构体类型的大小是其所有成员所占空间字节数相加之和;⑤花括号外的分号必不可少;返回本节9.1.1结构体变量例如:structdate{intyear,month,day;};也可以写成,structdate{intyear;intmonth;intday;};返回本节9.1.1结构体变

3、量以上结构体类型的全称是"structdate",我们用它来描述某一天的日期;它有三个成员项year、month、day,分别代表年、月、日;类型大小是三个整型变量的存储字节数相加之和:6B(字节)。返回本节9.1.1结构体变量⑥结构体类型的声明还允许嵌套,例如:structstudent{intnum;charname[20];structdatebirthday;};返回本节9.1.1结构体变量结构体“structstudent”可以用来描述某个学生的相关信息,其中第三个成员birthday本身也是一个结构体类型,称为嵌套。我们还可以把structdate的声明嵌套进来,形成如下所示

4、形式:structstudent{intnum;charname[20];structdate{intyear,month,day;}birthday;};返回本节9.1.1结构体变量注意,struct声明定义了一种数据类型,只是列出了该数据结构的各成员组成情况,即给出了一个数据结构的“模版”,系统并没有为其分配存储空间,只有用这种类型定义变量或数组时系统才会为变量或数组分配存储空间。对于这一点,大家可以这样理解,“structdate”、“structstudent”与int、float在语法上具有类似的意义,只不过int、float的类型声明是由系统完成的,对于int、float本身

5、系统并不会为其分配空间。返回本节9.1.1结构体变量二、结构体变量的定义在C语言中,定义结构体变量存在三种方式。1、在声明结构体类型之后定义结构体变量定义形式为:struct结构体名结构体变量名;若结构体类型的声明按照前文,则结构体变量的定义如下:structdatesunday;structstudentstu1;这种定义变量的形式与前面我们学习过的定义变量的方式相同,并不陌生,因此不做过多阐述。但下面两种定义变量形式却是以前没有过的。返回本节9.1.1结构体变量2、在声明结构体类型同时定义结构体变量定义形式为:struct结构体名{成员列表}变量列表;例如:structdate{in

6、tyear,month,day;}sunday;structstudent{intnum;charname[20];structdatebirthday;}stu1;返回本节9.1.1结构体变量3、在声明一个无名结构体类型的同时定义结构体变量定义形式为:struct{成员列表}变量列表;例如:struct{intyear,month,day;}sunday;返回本节9.1.1结构体变量这种定义方式主要特点是声明的结构体没有名称,但是关键字struct必不可少。另外说明一点,因为此结构体没有名称所以不能利用这种结构体象第一种方式那样去定义变量。独立声明结构体类型的时候是不允许有这种方式的,

7、否则将毫无意义。返回本节9.1.1结构体变量针对三种定义方式的说明:①变量birthday所占存储空间为6个字节,变量stu1所占存储空间为:2+20+6=28个字节,其结构如下图9.1所示,sundaystu1yearmonthdaynumnamebirthday图9.1结构体变量存储空间示意图②不论哪一种定义方式,都可以同时定义若干个变量,变量名中间用逗号隔开。返回本节2B2B2B2B20B2B2B2Byearmonthday9

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

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

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