第08章结构、联合及枚举类型.ppt
《第08章结构、联合及枚举类型.ppt》由会员分享,可在线阅读,更多相关《第08章结构、联合及枚举类型.ppt(65页珍藏版)》请在三一办公上搜索。
1、第8章 结构、联合及枚举类型,*重点与难点8.1 结构体类型和结构变量的定义8.2 结构体变量的引用和初始化8.3 结构体数组8.4 结构体类型的指针变量,8.5 结构体与函数8.6 用typedef定义类型8.7 用指针处理链表8.8 共用体8.9 枚举类型*本章小结*作业,重点与难点,重点:结构体、共用体和枚举类型。难点:链表的操作。,二维表(关系),8.1 结构体类型和结构体变量的定义,8.1.1 结构体类型的定义8.1.2 结构体变量的定义,8.1.1 结构体类型的定义,struct 结构体名 数据类型 成员名1;数据类型 成员名2;数据类型 成员名n;,点坐标,二维坐标的点,stru
2、ct point float x;float y;,点的结构体类型,圆的结构体,struct circle struct point float x;float y;dot;float r;,struct point dot;,8.1.2 结构体变量的定义,1、先定义结构体类型,再定义结构体变量2、定义结构体类型的同时定义结构体变量3、直接定义结构体类型变量,1、先定义结构体类型,再定义结构体变量,struct circle struct point dot;float r;;struct circle graph1,graph2;,2、定义结构体类型的同时定义结构体变量,struct stu
3、dent int num;char name20;char sex;int age float score;char addr30;stu1,stu2;,3、直接定义结构体类型变量,struct int month;int day;int year;date1,date2;,8.2 结构体变量引用和初始化,1、结构体变量的引用2、结构体变量的初始化,1、结构体变量的引用,在ANSI中除了允许具有相同类型的结构体变量相互赋值外,一般对结构体变量的引用是通过其成员来实现。成员引用形式:,结构体变量名.成员名,举例:graph1.r graph1.dot.x,例8.1 求两个同心圆的面积差,main
4、()struct point float x;float y;struct circle struct point dot;float r;struct circle graph1,graph2;float area;graph1.dot.x=2;graph1.dot.y=3;graph1.r=4;graph2.dot=graph1.dot;printf(Graph2.r=);scanf(%f,2、结构体变量的初始化,初始化形式 结构体类型 结构体变量=初始化数据;举例 struct circle graph1=2,3,4;即x=2,y=3,r=4;其中内层可省。,8.3 结构体数组,stru
5、ct circle cir3;struct credit int num;char*name;char sex;float score3stu5;,结构体数组举例,struct credit int num;char*name;char sex;float score3;stu5=101,Zhao Hua,M,45,80,78,102,Xian Jiang,M,62.5,76,80,103,Sun Jun,F,92.5,92,89,104,Li Wei,F,87,88,91,105,Zhou Li,M,58,60,77;,例8.2 计算学生的总分,按总分排名次及输出名次表,stui.total
6、+=stui.scorej;排序:选择法,for(i=0;istuk.total)k=j;if(k!=i)temp=stui;stui=stuk;stuk=temp;,8.4 结构体类型的指针变量,结构体变量可以由不同类型的成员构成,各个成员所占空间字节数之和是结构体变量所占的内存空间。结构体的指针是结构体变量在内存中得首地址。结构体类型的指针变量可以存放结构体的首地址。,成员引用方法,一般方法 graph1.dot.x指针方法 已知p=(*p).r(*p).dot.x 或 p-r p-dot.x 其中:“结构体指针变量名-成员名”方法直观。,举例:成员的指针引用方式,struct credi
7、t*p=,索引表结构,struct index int num;struct credit*link;index_id5,struct credit int num;char*name;char sex;float score3;float total;stu5;,索引图示,8.5 结构体与函数,结构体成员可以像简单变量一样作为函数的参数。结构体变量也可以作为函数的参数。它的传递方式是值传递。由于在值传递时,实参拷贝到形参变量,如果结构体变量的成员较多、数据量较大时,传递效率会很低。一般采用结构体指针变量作为函数的参数。这样,在参数传递时仅需要拷贝一个地址而已。,例8.4 结构体与函数,voi
8、d caltotal(struct credit stu,int n)int i,j;for(i=0;in;i+)stui.total=0;for(j=0;j3;j+)stui.total+=stui.scorej;,形参也可以为:struct credit*p,int n,8.6 用typedef定义类型,typedef声明新的类型名来代替已有的类型名。注意:typedef并不是创造新的类型。举例:,typedef struct date int month;int day;int year;DATE;,DATE birthday;,声明一个新的类型名的步骤,1、先按定义变量的方法写出定义体
9、 int i;2、将变量名换成新类型名 将i换成COUNT3、在最前面加typedef typedef int COUNT4、然后可以用新类型名去定义变量 COUNT i,j;,举例,typedef int NUM100;NUM n;,typedef struct student int num;char name20;STU;STU st1;,说明,typedef与define#define是在预编译时处理的,它只作简单的字符串替换;typedef是在编译时处理的,并不是作简单的字符串替换。typedef的作用 有利于程序的通用与移植。譬如:typedef int INTEGER;,课堂训练
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 08 结构 联合 枚举 类型

链接地址:https://www.31ppt.com/p-5886659.html