资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
第十一章 结构体与共同体11.1概述1.结构体是一种构造数据类型。 用途:把若干相互关联的、不同类型的数据组合成一个整体。自定义数据类型。2. 结构体类型声明 struct 结构体名 类型 成员名; 类型 成员名; .;11.2 定义结构体类型变量的方法1. 先声明结构体类型,再定义结构体变量。 定义形式: struct 结构体名 类型 成员名; 类型 成员名; ; struct 结构体名 变量名表列;2.在声明结构体类型的同时定义结构体变量。定义形式: struct 结构体名 类型 成员名; 类型 成员名; 变量名表列;3. 直接定义结构体变量。 注意:无名结构体直接定义变量只能一次。关于结构体类型和结构体变量的说明类型与变量概念不同。只能对变量赋值、存取或运算;不能对类型赋值、存取或运算。编译时,对类型不分配空间,只对变量分配空间。结构体成员可以与程序中的变量同名。结构体成员也可以是一个结构体变量(嵌套)。11.3 结构体变量的引用1. 规则:不能整体引用结构体变量,只能引用变量成员。2. 引用形式 : 结构体变量名.成员名;11.4 结构体变量的初始化1.编译时,按各成员在结构体中的先后顺序为结构体变量分配连续内存空间。初始化方式类似数组。11.5 结构体数组1.11.6 指向结构体类型数据的指针1.可以定义一个指针变量用来指向某个结构体变量,此时该指针变量的值是此结构体变量所占的内存段的起始地址。定义形式: struct 结构体名 *结构体指针变量名;指针访问结构体成员的方法: 1. 结构体指针变量名-成员名 2. (*结构体指针变量名). 成员名结构体指针变量也可用来指向结构体数组。11.7 用指针处理链表1. 链表概述 链表是一种重要的数据结构,由一个头指针变量和一系列结点构成。 每个结点都包括两部分:实际数据和下一结点的地址。结构体变量因其自身的特点最适合作为链表的结点。 一个指针类型的结构体成员也可以指向自己所在的结 构体类型的数据。11.8 共同体1.共用体是一种构造数据类型。 若干不同类型的变量组合成一个整体,共占一段内存(相互覆盖)单元。自定义数据类型。2. 共用体类型声明 union 共用体名 类型 成员名; 类型 成员名; .;共用体类型声明仅描述结构的组织形式,不分配内存。3.共用体变量引用共用体变量引用与结构体类似,有下面三种方式: 共用体变量名.成员名; 共用体指针名-成员名; (*共用体指针名).成员名;注意:不能引用共用体变量,只能引用其成员。共用体变量中起作用的成员是最后一次存放 的成员。应注意共用体变量的当前值。不能在定义共用体变量时初始化。共用体可嵌套于结构体中。11.9 枚举1.枚举是一种构造数据类型。 用途:将变量的值一一列举出来,变量的值只限于元素表所列举出来的取值范围内。枚举的声明形式: enum 枚举名枚举元素表;枚举变量的定义形式: enum 枚举名 变量表; enum 枚举名 枚举元素表变量表;注意:在C 编译中,对枚举元素按常量处理,故称枚举常量。不能对他们赋值。枚举元素默认值按定义时的顺序依次为 0, 1, 2,也可以在定义时改变枚举元素的值。不能给一个枚举变量赋一个整数值。枚举值可以用来做判断比较。11.10 用typedef定义类型1. 用途:简化结构体、共用体等构造类型的类型说明。 类型定义的一般形式: typedef 原类型名 新类型名;例:typedef struct student int num ; char name20; char sex; int age; STU ; STU stu1,stu2; typedef char * CP ; CP point1;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号