C程序设计第9章自定义数据类型.ppt
《C程序设计第9章自定义数据类型.ppt》由会员分享,可在线阅读,更多相关《C程序设计第9章自定义数据类型.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C程序设计第9章 自定义数据类型主讲教师:主讲教师:鲁鲁 萍萍西安建筑科技大学西安建筑科技大学 理学院理学院1第9章 自定义数据类型小小 结结习习 题题结构体变量结构体数组结构体与指针指针与链表共用体枚举2结构体类型的定义结构体类型的定义例例1 1 学生信息学生信息:学号:学号,姓名姓名,成绩成绩,成绩成绩,成绩成绩,平均成绩平均成绩要求计算平均成绩,并输出学生的学号,姓名和平均成绩要求计算平均成绩,并输出学生的学号,姓名和平均成绩 问题:学生信息包含不同类型的数据问题:学生信息包含不同类型的数据例例2 2 对一个班的若干学生进行管理,实现插入新生信息和删除转对一个班的若干学生进行管理,实现插
2、入新生信息和删除转学学生信息的功能。学学生信息的功能。问题:新数据无法和已有数据连续存储问题:新数据无法和已有数据连续存储 结构体结构体 链表链表3结构体类型的定义结构体类型的定义例例1 1学生信息学生信息:学号:学号,姓名姓名,成绩成绩,成绩成绩,成绩成绩,平均成绩平均成绩要求计算平均成绩,并输出学生的学号,姓名和平均成绩要求计算平均成绩,并输出学生的学号,姓名和平均成绩struct studentint num;char name20;float score1;float score2;float score3;float aver;结构体类型:结构体类型:不同类型的数据的有序集合不同类型
3、的数据的有序集合 struct struct 类型名称类型名称 成员表列成员表列 ;结构体变量:结构体变量:用结构体类型说明的变量用结构体类型说明的变量(定义结构体(定义结构体类型类型不分配内存不分配内存单元!定义结构体单元!定义结构体变量变量时分配时分配存储单元)存储单元)/定义个结构体变量定义个结构体变量struct student stu1,stu2;struct student stu3;/定义定义3个元素的结构体数组个元素的结构体数组 4结构体变量的初始化结构体变量的初始化定义时初始化:将各元素初值放在定义时初始化:将各元素初值放在“”里赋值给变量。里赋值给变量。例:例:struct
4、 student int num;char name20;float score1;float score2;float score3;float aver;stu3=001,zhang3,80,88,75,002,li4,90,83,84,003,wang5,50,62,65;可以这样定义结构体变量可以这样定义结构体变量5001“zhang3”808875002“li4”908384stustu1 1结构体变量的定义结构体变量的定义struct studentint num;char name20;float score1;float score2;float score3;float av
5、er;stu1,stu2;存储:存储:(1)(1)结构体的所有成员各自占用不结构体的所有成员各自占用不同的内存单元同的内存单元(2)(2)一共一共占用多少字节存储单元?占用多少字节存储单元?sizeof(struct student)stu3;stustu2 2stu0stu1stu2int numchar name20float score1float score2float score3float aver38字节字节38字节字节38字节字节int numchar name20float score1float score2float score3float aver6 for(i=0;i
6、3;i+)aver=score1+score2+score3;aver/=3;结构体结构体 变量引用变量引用 例例11-111-1要求要求计算平均成绩计算平均成绩,并输出学生的学号,姓名和平均成绩,并输出学生的学号,姓名和平均成绩 struct student int num;char name20;float score1;float score2;float score3;float aver;stu3=001,zhang3,80,88,75,002,li4,90,83,84,003,wang5,50,62,65;stui.stui.stui.stui.stui.成员的引用方式:结构体变量
7、名成员的引用方式:结构体变量名.成员名成员名001“zhang3”808875002“li4”908384stustu00stustu11 numname20score1score2score3avernumname20score1score2score3aver7输出学生的所有信息输出学生的所有信息 printf(”%d,%s,%f,%f,%f,%fn”,stud1);不能不能对结构体变量对结构体变量整体输入输出整体输入输出,只能对,只能对各个成员分别输入输出各个成员分别输入输出printf(”%d,%s,%f,%f,%f,%fn”,stud1.num,stu1.name,stu1.scor
8、e1,stu1.score2,stu1.score3,stu1.aver);()结构体变量引用结构体变量引用 A0901A0901:学生信息:学号:学生信息:学号,姓名姓名,成绩成绩,成绩成绩,成绩成绩,平均成绩平均成绩要求计算平均成绩,并要求计算平均成绩,并输出学生的学号,姓名和平均成绩输出学生的学号,姓名和平均成绩 for(i=0;i3;i+)printf(%5d%20s%8.2fn,stui.num,stui.name,stui.aver);8结构体例题结构体例题A0901A0901:#includestruct studentint num;char name20;float scor
9、e1;float score2;float score3;float aver;void main()struct student stu3=001,zhang3,80,88,75,002,li4,90,83,84,003,wang5,50,62,65;int i;for(i=0;i3;i+)stui.aver=stui.score1+stui.score2+stui.score3;stui.aver/=3;for(i=0;i3;i+)printf(%5d%20s%8.2fn,stui.num,stui.name,stui.aver);9指向结构体变量的指针指向结构体变量的指针A0901A09
10、01:#includestruct studentint num;char name20;float score1;float score2;float score3;float aver;stu=001,zhang3,80,88,75;struct student *p=&stu;stu.aver=stu.score1+stu.score2+stu.score3;stu.aver/=3;printf(%5d%20s%8.2fn,stu.num,stu.name,stu.aver);001“zhang3”808875Pp-p-p-p-p-(*p).(*p).(*p).1 1、结构体类指针变量的
11、定义:、结构体类指针变量的定义:结构体类型名称结构体类型名称 *指针变量名指针变量名2 2、通过指针变量引用成员:、通过指针变量引用成员:1)1)结构体类指针变量名结构体类指针变量名-成员名成员名 (常用)(常用)2)(*2)(*结构体类指针变量名结构体类指针变量名).).成员名成员名10指向结构体数组的指针指向结构体数组的指针A0901A0901:#includestruct studentint num;char name20;float score1;float score2;float score3;float aver;stu3=001,zhang3,80,88,75,002,li4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 自定义 数据类型
限制150内