第8章复合数据类型.ppt
《第8章复合数据类型.ppt》由会员分享,可在线阅读,更多相关《第8章复合数据类型.ppt(34页珍藏版)》请在三一文库上搜索。
1、第8章 复合数据类型,第8章 复合数据类型,81 结构类型,84 枚举类型,83 位段结构类型,82 联合类型,85 类型定义(typedef),复合类型(构造类型),由基本类型按一定的规律组合而成,C语言的复合数据类型包括,数组 结构类型 联合类型 枚举型 位段,8.1结构类型(struct),一.结构类型的定义,1. 结构类型定义的一般格式,struct 结构标识符 数据类型 成员1; 数据类型 成员2; : 数据类型 成员n; ;,例: struct student char name20; int age; float score; ;,关于结构类型定义的几点说明:,1)一个结构类型可
2、以包括若干个数据项,每个数据项都有一 种数据类型,称为结构成员。,2)结构的成员可以与程序中其它变量同名,也可以和另一个结构类型的成员同名。,3)结构类型定义的位置,可以在函数内部,也可以在函数外部,其作用域也与其定义的位置有关。结构类型有全局和局部之分。,2. 结构(变量)、结构数组、结构指针的定义,(1)直接定义(常用): 即在定义结构类型的同时定义;,例: struct employee char number5; char name10; int age; float wage; emp1, emp210, *emp3;,(2) 间接定义(常用) : 先定义结构类型,然后定义结构(变量
3、);,例: struct employee char number5; char name10; int age; float wage; ; struct employee emp1, emp210, *emp3;,(3) 一次性定义(不常用) :在定义结构类型的同时定义 结构,但结构类型无类型名。,例: struct char number5; char name10; int age; float wage; emp6, emp710, *emp8;,3. 嵌套结构和递归结构,(1)嵌套结构:一个结构的某些成员也是结构类型,例: struct date int year ; int mo
4、nth ; int day; ; struct employee char name20; struct date birthday; float salary; ;,(2)递归结构一个结构的某些成员与该结构属于同一类型,例: struct node int date; struct node *next ; ,4. 结构的存储分配,一个结构变量的所有成员在内存中占用连续的存储单元,例: struct date int year ; int month ; int day; struct employee char name10; struct date birthday; float sal
5、ary; p ;,p.name (10字节),p.birthday.year (2字节),p.birthday.month (2字节),p.birthday.day (2字节),p.salary (4字节),二. 结构成员的访问,结构成员访问的一般格式: 结构名.成员名 用指针访问结构成员: 指针名-成员名 (*指针名).成员名,运算符“-”和“.”都是访问结构成员运算符,并同处于 最高优先级,结合性也都是从左到右。,例: struct xy int x; float y; a, b,*c=,例: struct date int year ; int month ; int day; ; st
6、ruct employee char name20; struct date birthday; float salary; ;,嵌套结构成员的访问:,例 : struct employee p; strcpy(p.name, “zhangsan“); p.salary = 850; p.birthday.year = 1960; p.birthday.month =12; p.birthday.day = 25;,三. 结构成员的初始化,即:在定义结构变量的同时为每个成员赋初始化。 方法同数组,例: struct xy int x; float y; z=7, 3.6;,使用说明:,除初始化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复合 数据类型
链接地址:https://www.31doc.com/p-3435542.html