- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章学习要求: 1. 了解位段结构类型,了解自定义类型的定义方法,理解结构体、共同体类型的定义,掌握结构体变量的定义与使用。 2. 掌握结构体数组的定义与使用,掌握结构体指针的定义与使用,掌握单链表的定义、单链表的建立及结点的插入、删除运算。 3. 掌握枚举类型变量的定义与使用。 迄今为止,我们已经介绍了C语言中的基本数据类型(整型、实型、字符型)及派生类型(数组和指针)。但实际处理问题时,只有这些数据类型是不够的,故C语言给用户提供了自己声明数据类型的权利,这些类型称为构造类型。本章将介绍四种构造类型:结构体类型、共同体类型、枚举类型及自定义类型。 有时候我们需要将各种不同数据类型的变量、数组等组合成一个整体,使之相互之间具有一定的联系。比如每位学生个体都具有学号、姓名、年龄、成绩等属性,而一个班级的学生在学号上又具有一定联系。要想把这种数据结构描述出来,利用目前所学的知识是无法达到的,而本章介绍的结构体数据类型就可以解决这个问题。 9.1.1 结构体变量 大家非常清楚,定义一个变量必须指出确定的类型,这样系统才能为其分配确定大小的存储空间。而结构体类型是由用户自己声明的,所以定义结构体变量之前就必须声明结构体类型,或者可以在声明结构体类型的同时定义结构体变量。 1. 结构体类型的声明 结构体类型声明的一般形式如下: struct 结构体名 { 成员列表 }; 其中: (1) “struct”是C语言的关键字,是结构体类型的标志。 (2) “结构体名”称为结构标记,即代表花括号内的声明,可以用它作为该声明的简写形式,书写要符合C语言标识符命名规则。 (3) “成员列表”可以是若干个不同类型的变量、数组。 (4) 结构体类型的大小是其所有成员所占空间字节数相加之和。 (5) 花括号外的分号必不可少。 例如: struct date { int year,month,day; }; 也可以写成 struct date {int year; int month; int day; }; 以上结构体类型的全称是struct date,我们用它来描述某一天的日期;它有三个成员项year、month、day,分别代表年、月、日;类型大小是三个整型变量的存储字节数相加之和:6B(字节)。 (6) 结构体类型的声明还允许嵌套,例如: struct student {int num; char name[20]; struct date birthday; }; 结构体struct student可以用来描述某个学生的相关信息,其中第三个成员birthday本身也是一个结构体类型,称为嵌套。我们还可以把struct date的声明嵌套进来,形成如下形式: struct student {int num; char name[20]; struct date { int year,month,day; }birthday; }; 注意,struct声明定义了一种数据类型,只是列出了该数据结构的各成员组成情况,即给出了一个数据结构的“模版”,系统并没有为其分配存储空间,只有用这种类型定义变量或数组时系统才会为变量或数组分配存储空间。对于这一点,大家可以这样理解,“struct date”、“struct student”与int、float在语法上具有类似的意义,只不过int、float的类型声明是由系统完成的,对于int、float本身系统并不会为其分配空间。 2. 结构体变量的定义 在C语言中,定义结构体变量存在三种方式。 1) 在声明结构体类型之后定义结构体变量 此方式的定义形式如下: struct 结构体名 结构体变量名; 若结构体类型的声明按照前文,则结构体变量的定义如下: struct date sunday; struct student stu1; 这种定义变量的形式与前面我们学习过的定义变量的方式相同,并不陌生,因此不作过多阐述。但下面两种定义变量的形式却是以前没有过的。 2) 在声明结构体类型的同时定义结构体变量 此方式的定义形式如下: struct 结构体名 { 成员列表 }变量列表; 例如: struct date { int year,month,day; }sunday; 或 struct student {int num; char name[20]; struct date birthday; }stu1; 3
您可能关注的文档
- C语言程序设计 作者 978-7-302-30635-1 第3章 顺序结构程序设计.ppt
- C语言程序设计 作者 978-7-302-30635-1 第5章 循环结构程序设计.ppt
- C语言程序设计 作者 978-7-302-30635-1 第8章 预处理命令.ppt
- C语言程序设计 作者 978-7-302-30635-1 第11章 文件.ppt
- C语言程序设计 作者 978-7-302-31359-5 第3章 顺序结构程序设计.ppt
- C语言程序设计 作者 978-7-302-31359-5 第4章 选择结构程序设计.ppt
- C语言程序设计 作者 978-7-302-31359-5 第5章 循环结构程序设计.ppt
- C语言程序设计 作者 978-7-302-31359-5 第6章 数组.ppt
- C语言程序设计 作者 978-7-302-31359-5 第9章 用户自定义数据类型.ppt
- C语言程序设计 作者 978-7-302-31359-5 第10章 指针.ppt
文档评论(0)