结构体枚举和共用体类型课件.ppt

结构体枚举和共用体类型课件.ppt

ID:57028268

大小:2.68 MB

页数:72页

时间:2020-07-26

结构体枚举和共用体类型课件.ppt_第1页
结构体枚举和共用体类型课件.ppt_第2页
结构体枚举和共用体类型课件.ppt_第3页
结构体枚举和共用体类型课件.ppt_第4页
结构体枚举和共用体类型课件.ppt_第5页
资源描述:

《结构体枚举和共用体类型课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章结构体、枚举和共用体类型10.1结构体类型10.2结构体和函数10.3动态数据结构——链表10.4枚举类型10.5共用体类型10.6用户自定义类型10.1结构体类型结构体类型的定义结构体类型中可以根据需要包含若干相同或不同类型的成员,这些成员所代表的信息必须是相关的信息。结构体类型定义的格式为:struct结构体名{类型名成员名1;类型名成员名2;……类型名成员名n;};例如,structdate{intyear;intmonth;intday;};10.1结构体类型structstudent{intnumber;/*学号*

2、/charname[8];/*姓名*/charsex;/*性别*/floatscore[4];/*成绩*/};struct是结构体类型的标识,是关键字。struct和后面的结构体名共同构成结构体类型名。结构体名应符合标识符的命名规则。结构体所有成员的定义用花括弧括起来。结构体成员的定义方式和变量的定义方式一样,成员类型可以是基本类型的,也可以是构造类型的。各成员之间用分号分隔。结构体内的各个成员名不能重名,但成员名可以与结构体外其他标识符同名,并不产生冲突。10.1结构体类型结构体变量的定义用已经定义的结构体类型定义结构体变量。s

3、tructstudentstu;定义结构体类型的同时定义结构体变量。stu1,stu2。structstudent{intnumber;/*学号*/charname[8];/*姓名*/charsex;/*性别*/floatscore[4];/*成绩*/}stu1,stu2;10.1结构体类型定义无名结构体类型的同时定义结构体变量。这种定义形式省略了结构体名。不再需要定义此种类型变量的情况才可采用这种方式。struct{intnumber;/*学号*/charname[8];/*姓名*/charsex;/*性别*/floatscor

4、e[4];/*成绩*/}stu结构体变量各个成员按照定义的顺序依次占用连续的空间。可以定义指针变量指向结构体类型变量。结构体变量的地址虽与其第一个成员的地址的值是相同的,但它们的类型是不同的。它们之间不能直接相互赋值,但是可以先将其用强制类型转换,转换为同一类型指针后相互赋值。10.1结构体类型结构体变量的初始化和引用结构体变量的初始化若在定义之后进行初始化操作,只能对每个成员单独进行赋值。若在定义变量的同时进行初始化,则用一对花括弧括起各个成员值的列表并用赋值号和变量连接,成员值之间逗号分隔,具体格式为:结构体类型名结构体变量=

5、{成员值列表};例如,structstudentstu={1001,"wang",‘f’,60.5,80,75,90};结构体变量的引用只能引用结构体变量的成员,不能引用整个结构体变量。结构体变量的成员引用形式为:结构体变量名.成员名其中“.”称为成员运算符。如果是通过指向结构体变量的指针引用结构体成员,形式为:(*指针变量名).成员名或指针变量名->成员名10.1结构体类型如果结构体的成员仍然是构造类型,则需要逐级引用,直至最低级的成员,即只能对结构体变量最低级的成员进行存取和运算。【例10.1】输入学生的各项信息,计算总分和平

6、均成绩后输出。#include"stdio.h"structdate{intyear;intmonth;intday;};/*定义结构体类型structdate*/structstudent{intnumber;/*学号*/charname[10];/*姓名*/structdatebirthday;/*生日,structdate类型*/10.1结构体类型floatscore[4];/*四门课成绩*/floattotal;/*总分*/floatave;/*平均成绩*/};/*定义结构体类型structstudent*/main(){

7、structstudentstu,*p;intk;printf("pleaseenternumber&name:");scanf("%d%s",&stu.number,stu.name);printf("pleaseenterbirthday(year,month,day):");scanf("%d%d%d",&stu.birthday.year,&stu.birthday.month,&stu.birthday.day);printf("pleaseenterthescore(4):");10.1结构体类型for(stu.tot

8、al=0,k=0;k<4;k++){scanf("%f",&stu.score[k]);stu.total+=stu.score[k];/*计算总成绩*/}stu.ave=stu.total/4;/*计算平均成绩*/p=&stu;printf("n

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

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

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