欢迎来到天天文库
浏览记录
ID:50043061
大小:1.10 MB
页数:69页
时间:2020-03-08
《C程序设计实例教程 教学课件 作者 金林樵第8章 构造数据类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在前面的学习中,使用的变量是一些简单数据类型(整型、实型、字符型)或数组,这些数据类型的特点是它们都是单一数据类型的。而在现实生活中,很多数据的描述是由若干种不同类型的数据组成的。1.结构体的定义与使用2.共用体的定义与使用3.枚举类型的定义与使用这些数据类型将大大提高C语言程序的数据处理能力,其中结构体更是实现许多高级算法所必须的,因此学好本章有利于提升程序设计的能力。第8章构造数据类型8.1学生批量数据的管理8.2结构体8.3使用结构体类型指针处理链表8.4共用体8.5枚举目录<>C程序设计实例教程第八章构造数据类型8.1学生批量数据的管理在学生成绩管理系统实
2、例中,涉及的学生数据有学号、姓名、性别、年龄、班级、个人密码、英语成绩、语文成绩、数学成绩和平均成绩等(如表1-1的学生成绩数据表),每个人一个记录,其中学号、姓名、性别、班级、个人密码属于字符串,年龄属于整型,英语成绩、语文成绩、数学成绩等既可以使用整型也可以使用实型,平均成绩又属于实型。但前面已学过的数据类型只能表示单一的数据类型,无法用其中的任一种数据类型完全描述,所以学生数据只能分散存放在各自的数组中,给学生数据的管理带来了困难。为解决不同类型数据的组合存放问题,C语言引入了一种能组合不同数据类型于一体的数据类型——结构体类型。<>C程序设计实例教程第八章
3、构造数据类型8.2结构体结构体类型可以将若干个不同类型的数据组合起来组织成一个整体。结构体是由若干成员组成的一种构造类型,其中的每一个成员可以是基本数据类型或构造类型。8.2.1结构体类型的定义结构体类型必须先定义,后使用。结构体类型定义的一般形式为:struct结构体名{类型标识符成员变量名1;类型标识符成员变量名2;……类型标识符成员变量名n;};其中,struct是定义结构体类型的关键字,后跟结构体名,这两部分构成了结构体类型的标识符。下面花括号内定义了组成该结构体的所有成员,每个成员由成员变量的数据类型(由类型标识符指定)及其变量名组成。结构体中的类型标识
4、符可以是基本数据类型,也可以是其它已定义的构造类型,即允许嵌套定义。<>C程序设计实例教程第八章构造数据类型有了结构体,就可以将学生成绩管理系统中的学生数据定义成一个结构体类型,学生结构体类型的定义如下。structstudent/*定义结构体类型structstudent*/{charstuid[10];/*学号*/charstuname[10];/*姓名*/charsex[3];/*性别*/charclassid[12];/*班级*/charpassword[12];/*密码*/intage;/*年龄*/intscore[3];/*存放英语,语文,数学成绩的数
5、组*/floatavg;/*存放平均成绩的成员变量*/};structstudent结构体类型拥有8个成员变量stuid、stuname、sex、classid、password、age、score、avg,分别对应学生的学号、姓名、性别、班级、密码、年龄、3门课程成绩和平均成绩。<>C程序设计实例教程第八章构造数据类型结构体中成员的数据类型还可以是其它已定义的结构体类型,例如:structdate/*定义结构体类型structdate*/{intyear;/*年*/shortmonth;/*月*/shortday;/*日*/};structmystu/*定义结构
6、体类型structmystu*/{charstuid[10];/*学号*/charstuname[10];/*姓名*/charsex[3];/*性别*/charclassid[12];/*班级*/charpassword[12];/*密码*/structdatebirthday;/*生日,是structdate结构体类型*/intscore[3];/*存放英语,语文,数学成绩的数组*/floatavg;/*存放平均成绩的成员变量*/};structmystu结构体类型中的成员birthday是另一个structdate结构体类型的变量。<>C程序设计实例教程第八章
7、构造数据类型8.2.2结构体变量的定义上面定义的结构体类型只不过是一种自定义的新数据类型,相当于前面已使用过的int、float、char等标准数据类型的角色。因此定义了结构体类型后,还需要在程序中定义该结构体类型的变量,相当于定义一个整型变量要使用“intx;”一样。1.先定义结构体类型,再定义结构体类型变量struct结构体名{类型标识符成员变量名1;类型标识符成员变量名2;……类型标识符成员变量名n;};struct结构体名结构体变量名1[,结构体变量名2,……];structstudent/*定义结构体类型structstudent*/{charstuid
8、[10];
此文档下载收益归作者所有