C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt

C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt

ID:50320206

大小:170.50 KB

页数:71页

时间:2020-03-08

C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt_第1页
C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt_第2页
C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt_第3页
C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt_第4页
C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 解晨光 葛竹春 第10章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章结构体与共用体结构体类型10.1共 用 体10.2案例分析10.3教学目标熟练掌握结构体类型的定义、使用;熟练掌握结构体数组的使用;熟练掌握利用指向结构体变量的指针引用结构体成员的方法;掌握动态存储分配的方法及利用动态存储分配构成链表;掌握共用体类型的定义及使用;掌握定义新类型的方法;理解结构体类型的应用场合。10.1结构体类型10.1.1结构体类型的定义结构体的概念是C语言中的构造类型,是由不同数据类型的数据组成的集合体。为处理复杂的数据结构提供了手段。为函数间传递不同类型的参数提

2、供了便利。10.1.2结构体类型变量的使用1.结构体类型变量的定义要定义一个结构体类型的变量,可采取以下3种方法。(1)先定义结构体类型,再定义变量。(2)在定义类型的同时定义变量。(3)直接定义结构体类型变量。2.结构体变量的初始化3.结构体变量的引用4.结构体变量的输入和输出【例10-1】结构体变量的输入/输出。main(){structstudent{intonum;charname[20];charsex;intage;floatscore;}a={21103,"JiangLinpan",'M',

3、20,89.5};printf("No:%dName:%sSex:%cAge:%dScore:%f",a.num,a.name,a.sex,a.age,a.score);}运行结果为No:21103Name:JiangLinpanSex:MAge:20Score:89.50000010.1.3结构体数组1.结构体数组的定义与定义结构体变量的方法一样,在结构体变量名之后指定元素个数,就能定义结构体数组。例如:structstudentstudents[30];#include

4、g.h>structperson{charname[20];intcount;}leader[3]={"Li",0,"Zhang",0,"Fang",0};main(){inti,j;charleader_name[20];for(i=1;i<=10;i++){scanf("%s",leader_name);for(j=0;j<3;j++)if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;}printf("")for(i=0;i<3;

5、i++)printf("%s:%d",leader[i].name,leader[i].count);}输入数据:Li↙Li↙Zhang↙Fang↙Li↙Li↙Zhang↙Zhang↙Li↙Fang↙运行结果为Li:5Zhang:3Fang:210.1.4指向结构体变量的指针定义指向结构体变量的指针的一般形式为struct类型名*指针名;指针变量−>结构体成员名;其中“−>”称为指向运算符。例如,引用stu变量的name成员时,可以写成p−>name。【例10-3】指向结构体变量的指针的应用。#inc

6、ludemain(){structstudent{longnum;charname[20];charsex;floatscore;};structstudentstu,*p;p=&stu;stu.num=6101;strcpy(stu.name,"LiLi");stu.sex='F';stu.score=89.5;printf("No.:%ldname:%ssex:%cscore:%f",stu.num,stu.name,stu.sex,stu.score);print

7、f("No.:%ldname:%ssex:%cscore:%f",p−>num,p−>name,p−>sex,p−>score);printf("No.:%ldname:%ssex:%cscore:%f",(*p).num,(*p).name,(*p).sex,(*p).score);}运行结果为No.:6101Name:LiLiSex:FScore:89.500000No.:6101Name:LiLiSex:FScore:89.500000No.:6101Name:LiL

8、iSex:FScore:89.50000010.1.5链表链表中的所有数据元素都分别存储在一个个具有相同数据结构的结点里面。结点是链表的基本存储单元,一个结点与一个数据元素一一对应。1.动态存储分配从静态存储区域分配:在程序编译时分配,在程序的整个运行期间都存在。比如全局变量和静态变量动态内存分配,用malloc向系统申请一连续的内存空间,不再需要时,用free函数释放2.链表链表存储数据的形式如图10-4所示。图10-4链表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。