C语言程序设计 教学课件 作者 邵军 全书第9章.ppt

C语言程序设计 教学课件 作者 邵军 全书第9章.ppt

ID:50083788

大小:961.50 KB

页数:92页

时间:2020-03-08

C语言程序设计 教学课件 作者 邵军 全书第9章.ppt_第1页
C语言程序设计 教学课件 作者 邵军 全书第9章.ppt_第2页
C语言程序设计 教学课件 作者 邵军 全书第9章.ppt_第3页
C语言程序设计 教学课件 作者 邵军 全书第9章.ppt_第4页
C语言程序设计 教学课件 作者 邵军 全书第9章.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 邵军 全书第9章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章结构体、联合体与枚举类型9.1结构体9.2联合体9.3枚举类型9.4类型定义符typedef9.1结构体9.1.1结构体类型的定义结构体类型是用户自定义类型,因此要使用结构体变量就要先自行定义结构体的类型。结构体类型定义用关键字struct标识,形式为struct结构体类型名{类型说明符 成员表列;};其中:结构体类型名是用户为自己定义的结构体类型所起的名称;成员表列由若干个C语言的各种数据类型的变量组成,每个变量被称为一个成员,每个成员都是该结构体的一个组成部分。对每个成员也必须作类型说明,成员名的命名应符合标识符的命名规定。例如,在学籍管理程序中,可以定义如下结构体:st

2、ructstudent{intnum;charname[20];charsex;floatscore;};其中,结构体类型名为student。该结构体由4个成员组成:第一个成员为num,整型变量;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为score,实型变量。9.1.2结构体变量的定义、引用及初始化1.结构体变量的定义在程序中不能直接使用结构体类型来编程,必须用定义好的结构体类型再定义出结构体变量,利用结构体变量进行编程。   定义结构体变量有三种方法,下面以9.1.1节中定义的student为例来加以说明。(1)先定义结构体类型,再定义结构体变量。

3、   例如:structstudent{intnum;charname[20];charsex;floatscore;};structstudentboy1,boy2;这里定义了一个结构体类型student的两个变量boy1和boy2。(2)定义结构体类型的同时定义结构体变量。   例如:structstudent{intnum;charname[20];charsex;floatscore;}boy1,boy2;(3)直接定义结构体变量。   例如:struct{intnum;charname[20];charsex;floatscore;}boy1,boy2;方法(3)与方法(

4、2)的区别在于方法(3)中省去了结构体类型名,而直接给出结构体变量。三种方法中定义的boy1,boy2变量都具有如图9-1所示的结构。从图中可以看出结构体变量的各个成员所占存储空间的地址是连续的。   如前所述,结构体的成员也可以是另一个结构体类型,称为结构体类型嵌套。例如:structdate{intmonth;intday;intyear;};struct{intnum;charname[20];charsex;structdatebirthday;floatscore;}boy1,boy2;图9-1结构体变量的结构首先定义一个结构体date,该结构体由month(月)、day

5、(日)、year(年)三个成员组成。在定义变量boy1和boy2时,其中的成员birthday被定义为data结构体类型。成员名可与程序中的其他变量同名,互不干扰。2.结构体变量的引用虽然一个结构体变量的各自成员的地址空间连续,但在程序中对结构体变量一般不能整体引用。在ANSIC中,除了允许具有相同类型的结构体变量相互整体赋值以外,一般对结构体变量的引用(包括输入、输出、运算等)都是通过对结构体变量的各个成员访问来实现的。   访问结构体变量成员的一般形式为   结构体变量名.成员名例如:(1)赋值运算:boy1.num=1001;(2)如果结构体类型中嵌套结构体,则对结构体变量成

6、员的访问可以通过“.”运算符,逐级引用到最低级:boy1.birthday.month=3;(3)输入运算:scanf("%s",boy1.name);(4)输出运算:printf("%c",boy1.sex);(5)相同类型的结构体变量之间可以互相赋值:boy2=boy1;除了整体赋值,不能将一个结构体变量作为一个整体进行访问。【例9.1】在学籍管理程序中,输入一个学生的学号、姓名、性别以及三门课的成绩,并输出该学生的信息及平均成绩。   程序如下:main(){structstudent{intnum;charname[20];charsex;floatscore[3];};s

7、tructstudentboy1;inti;floatavg=0;printf(“请输入学生的学号、姓名和性别:”);scanf(“%d%s%c”,&boy1.num,boy1.name,&boy1.sex);printf(“请输入学生的三门课成绩:”);for(inti=0;i<3;i++)scanf(“%f”,&boy1.score[i]);/*输入boy1变量的score数组成员*/printf(“学生信息:”);printf(“学号=%d,姓名=%

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

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

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