结构体与共用体
- 格式:ppt
- 大小:839.00 KB
- 文档页数:47


第10章结构体与共用体考核知识点●结构体与共用体类型数据的定义方法和引用方法●用指针和结构体构成链表,单向链表的建立、输出、插入与删除重要考点●对结构体的声明及定义●访问结构体的成员的方法●熟悉对链表的操作10.1 用typedef说明一种新类型名C语言规定可以用typedef说明一种新的类型名,说明新类型名的语句一般形式为:typedef 类型名称标识符;其中,“类型名”一定是在此语句之前已有定义的类型标识符。
“标识符”是一个用户定义标识符,用来标识新的类型名。
typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并没有产生新的数据类型,因此,原有的类型名依然有效。
提示:声明一个新的类型名的具体步骤如下:⑴先按定义变量的方法写出定义的主体(如float a;).⑵将变量名换成新类型名(如将a换成FLO)。
⑶在最左面加上关键字typedef(如typedef FLO).⑷然后可以用新类型名去定义其他的变量(如FLO b;).10.2 结构体类型在实际工作中,当我们需要把一些不同类型,但相互之间又存在着联系的信息组合应用时,就要用到结构体。
结构体是一种看似复杂却非常灵活的构造数据类型。
在通常情况下,一个结构体类型由若干个称为成员(或称为域)的部分组成。
不同的结构体类型可根据需要由不同的成员组成。
但对于某个具体的结构体类型,其成员的数量必须固定,这一点与数组相同;但结构体中各个成员的类型可以不同,这是结构体与数组的重要区别。
例如,我们常用的“时间”可以由以下3个部分描述:小时(hour)、分(minute)、秒(second)。
它们都可以用整型数表示,可以把这3个成员组成一个整体,并给它取名为time,这就是一个简单的结构体。
声明一个结构体类型的一般形式为:struct 结构体名{成员表列};struct是C语言中的关键字,是结构体类型的标志。
“结构体名”用做结构体类型的标志,它又称“结构体标记”(structure)。
结构体和共用体数据:(1) 基本类型:整形字符型实型(2) 构造类型:数组结构体共用体理解:就是将不同类型的数据组成一个有机的整体。
一,声明结构体类型的一般形式:Struct 结构体名{成员表列;};二,定义结构体类型变量的方法:(1)先声明结构体类型在定义变量名:Struct student{成员表列;}Struct student student1,student2;(2)在声明类型的同时定义变量:Struct 结构体名{成员表列;}变量名表列;//student1,student2;(3)直接定义结构体变量:Struct {成员表列;注:即不出现结构体名;}变量名表列;注:成员也可以说一个结构体变量;例:Struct date{Int day;Int month;Int year;}Struct student {Int num;Char name[20];Char sex;Struct date birthday;//birthday是struct date类型}student1,student2;三,结构体变量的引用:形式:结构体变量名.成员名例:对变量的是赋值:student1.num=10020;如果成员本身又是一个结构体类型,则要用如干戈成员运算符从高向低级找例:student1.birthday.month;四,结构体的初始化Struct student{Int num;Char name[20];Char sex;Float score;} a={ 10101,”hashida”,’m’,89.0};结构体数组:简单理解就是结构体变量是一个数组;Struct student{} stu[3]={{ },{ },{ } } ;指向结构体类型数据的指针例:main (){struct student{long num;char name[20];char sex;float score;} ;Struct student stu;Struct student *p;P=&stu;Stu.num=10102;strcpy(,"tongyanming");Stu.sex=’m’;Stu.score=90.0;Printf(“%ld,%s%c%f”,stu.num,,stu.sex,stu.score); Printf(“%ld%s%c%f”,(*p).num,(*p).name,(*p).sex,(*p).score); printf("%ld %s %c %f\n",p->num,p->name,p->sex,p->score); Getch();}共用体定义形式:Union 共用体名{成员表列;}变量名表列;定义共用体变量的方法:(1)union date{int I;char ch;float f;}a,b,c;(2)(2) union date{int I;char ch;float f;};Union a ,b,c;注:共用体变量所占的内存长度是最长的成员长度引用 a.i,b.f;共用体变量不能初始化;。