c语言程序设计课件:第十一章结构体.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《c语言程序设计课件:第十一章结构体.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 第十一 结构
- 资源描述:
-
1、第十一章第十一章 结构体结构体 11.1 11.1 概述概述 在实际应用中,有不少应用问题如果只采在实际应用中,有不少应用问题如果只采用已学的变量和数组作为数据结构显得很不方用已学的变量和数组作为数据结构显得很不方便。便。 例:输入例:输入100100个学生的学号、姓名和考试成个学生的学号、姓名和考试成绩,编写程序找出高分者和低分者。绩,编写程序找出高分者和低分者。 用变量和数组作数据结构用变量和数组作数据结构可编写程序如下:可编写程序如下:main() int i, num, maxnum, minnum; char name20, maxname20, minname20; int sco
2、re, maxscore, minscore; maxscore=0; minscore=100; for(i=1; imaxscore) maxscore=score; maxnum=num; strcpy(maxname,name); if(scoreminscore) minscore=score; minnum=num; strcpy(minname,name); 输出输出 明显缺点:明显缺点: 变量过多,同一学生的各个数据无联系,变量过多,同一学生的各个数据无联系,没有整体概念,不便管理。没有整体概念,不便管理。 操作不便(如更新过程)。操作不便(如更新过程)。 显然,选用一种能把一
3、个学生的数据构造成显然,选用一种能把一个学生的数据构造成一个整体的构造型数据结构更合适,但不能是数一个整体的构造型数据结构更合适,但不能是数组组。 对于这种情况,可以将一个学生的数据定义对于这种情况,可以将一个学生的数据定义为一个为一个结构体类型结构体类型:struct student 类型名类型名 int num; 成员表成员表 char name20; int score; 定义了一个结构体类型,它包含三个成员。定义了一个结构体类型,它包含三个成员。 11.2 11.2 定义结构体类型变量的方法定义结构体类型变量的方法 前面定义的结构体类型只是一种前面定义的结构体类型只是一种“模型模型”,
4、还必须定义结构体变量后才能存放数据。还必须定义结构体变量后才能存放数据。 定义结构体变量有三种方法:定义结构体变量有三种方法: 1 1、先定义结构体类型再定义结构体变量、先定义结构体类型再定义结构体变量 定义了结构体类型后:定义了结构体类型后: structstruct student student st, stmax, stmin st, stmax, stmin; ; 类型符类型符 变量名变量名 定义了三个结构体变量,每个变量包含三个成定义了三个结构体变量,每个变量包含三个成员,每个变量可存放一个学生的数据。员,每个变量可存放一个学生的数据。 2 2、在定义结构体类型的同时定义结构体变量
5、、在定义结构体类型的同时定义结构体变量 struct student int num; char name20; int score; st, stmax, stmin;3 3、直接定义结构体类型变量、直接定义结构体类型变量 struct struct 不出现类型名不出现类型名 int int num;num; char name20; char name20; int int score; score; st, stmax, stminst, stmax, stmin; ; 常用第一种方法常用第一种方法说明:说明: 类型与变量不同,只对变量分配空间与操作。类型与变量不同,只对变量分配空间与操
6、作。 对成员可以单独使用,相当于普通变量。对成员可以单独使用,相当于普通变量。 成员也可以是一个结构体变量。成员也可以是一个结构体变量。 struct date struct student int month; int num; int day; char name20; int year; struct date birthday; ; st1, st2; 成员名可以与程序中的变量名相同,两成员名可以与程序中的变量名相同,两者代表不同的对象。者代表不同的对象。 11.3 11.3 结构体变量的引用结构体变量的引用 成员引用成员引用 可以对成员单独引用,形式为:可以对成员单独引用,形式为:
7、结构体变量名结构体变量名 . . 成员名成员名 成员运算符成员运算符st.num=1001;st.score=90;strcpy(st.name,”Li”);printf(“%d%s%d”,st.num,st.name,st.score);scanf(“%d%s%d”,&st.num,st.name,&st.score) ; 可以引用成员的地址可以引用成员的地址 如果成员本身又属一个结构体类型,则如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最要用若干个成员运算符,一级一级地找到最低一级的成员,只能对最低级的成员进行存低一级的成员,只能对最低级的成员进行存取与运算。取与
8、运算。 st1.birthday.year=1960; st1.birthday.month=5; st1.birthday.day=15; 整体引用整体引用 可以对结构体变量进行整体赋值:可以对结构体变量进行整体赋值: stmax=ststmax=st; ; 将st中的所有内容赋值给stmax。 对结构体变量的整体操作只限于赋值操作对结构体变量的整体操作只限于赋值操作和参数传递,而且要求类型一致。不能对结构和参数传递,而且要求类型一致。不能对结构体变量进行整体输入输出。体变量进行整体输入输出。 结构体应用举例:结构体应用举例: 编写程序输入编写程序输入100100个学生的学号、姓名和个学生的
9、学号、姓名和考试成绩,找出高分者和低分者。考试成绩,找出高分者和低分者。 struct student int num; char name20; int score; ; main() int i; struct student st,stmax,stmin; stmax.score=0; stmin.score=100; for(i=1;istmax.score) stmax=st; if(st.scorestmin.score) stmin=st; printf(“n%5d%15s%5d”,stmax.num,stmax.name, stmax.score); printf(“n%5d%
10、15s%5d”,stmin.num,stmin.name, stmin.score); 11.4 11.4 结构体变量的初始化结构体变量的初始化 对结构体变量可以在定义时指定初始值对结构体变量可以在定义时指定初始值 struct student int num; char name20; int score; st=1001,”wang”,95; 11.5 11.5 结构体数组结构体数组 可以定义结构体数组来存放批量数据。可以定义结构体数组来存放批量数据。 结构体数组的定义结构体数组的定义 struct student int num; char name20; int score; ;str
11、uct student a100; 定义定义a a数组,可以存放数组,可以存放100100个学生的数据。个学生的数据。 a a数组的每个元素又是一个结构体变量。数组的每个元素又是一个结构体变量。 结构体数组的初始化结构体数组的初始化 在定义结构体数组的同时指定初值。在定义结构体数组的同时指定初值。 struct struct studentstudent int int num;num; char name20; char name20; int int score;score; ; struct student a2= 1001,”LiLi”,85,1002,”wang”,90; 或:或:
展开阅读全文