C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx

C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx

ID:51777100

大小:157.80 KB

页数:27页

时间:2020-03-07

C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx_第1页
C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx_第2页
C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx_第3页
C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx_第4页
C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx_第5页
资源描述:

《C语言程序设计 教学课件 作者 孙鸿飞 刘国成 主编ch10.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、10.1结构体10.2共用体10.3枚举类型10.4用typedef定义类型第10章结构体、共用体与枚举类型问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用C语言程序存储并处理一组学生的学籍。单个学生学籍的数据结构学号(num):int型姓名(name):char[]型性别(sex):char型年龄(age):int型分数(score):float型这些信息数据之间相互关联,适合看作一个整体。但数据类型不一致,仅用已学数据类型无法解决。需要构造一种新的数据类型————结构体。10.1结构体10.1.1定义(声明)结构体类型struct[结构体名]{数据类型1成员名

2、1;数据类型2成员名2;……数据类型n成员名n;};{}中是组成该结构体的成员。成员类型可以是基本型或构造型struct是关键字,不能省略用户定义的合法标识符。可省:无名结构体末尾分号不能省我们来看一个结体构学生(student)的类型定义的语句:structstudent{intsno;/*学号*/charsname[20];/*姓名*/chargender;/*性别*/intage;/*年龄*/floatscore;/*成绩*/};注意:结构体类型声明只是定义了一种新的类型,类似int等类型。它是对结构的组织形式的描述,系统还没分配实际内存空间。10.1.2定义结构体变量有了类型后,

3、就可以定义变量。三种形式:一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名变量名表列;(1)先定义(声明)结构体类型再定义变量名例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};//结构体类型的声明structstudentstudent1,student2;//结构体变量的定义(2)定义结构体类型的同时定义结构体变量一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….}变量名表列;例structstud

4、ent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;(3)直接定义结构体变量(即不出现结构体名)一般形式:struct{类型标识符成员名;类型标识符成员名;…………….}变量名表列;例struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;namenumsexagescoreaddr2字节2字节20字节1字节4字节30字节……..10.1.3访问结构体成员结构体成员

5、与结构体变量之间的链接可以使用成员运算符“.”来建立,该运算符又称为点运算符。引用方式:结构体变量名.成员名例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu1.num=10;stu1.score=85.5;10.1.4结构体变量的初始化与其他类型变量一样,对结构体变量也可以在定义时进行初始化赋值,但附在变量后面的一组数据须用花括号括起来,其顺序应与结构体中的成员顺序保持一致。例如:structbookbook2={"Pascal","Thomas",300,22

6、.5};structstudent{charnum[15];charname[20];intscore[4];ints;}student1={"2007101010","wang",{89,90,87,80},0};main(){structstudentstudent2;student2=student1;…….}10.1.5结构体嵌套例structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}student1;numnamebirthdaymonthdayyea

7、r结构体成员本身又是一个结构体类型。例:声明structstudent类型时,将成员birthday指定为structdate类型结构体嵌套时逐级引用student1.birthday.month=3(√)student1.birthday=3()10.1.6结构体数组1、定义结构体数组:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30]

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

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

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