C++程序设计第7章 构造类型数据.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计第7章 构造类型数据.ppt

第 7章 构造类型数据 主要内容 在实际应用中,常常有许多不同类型的数据作为一个有机整体存在,比如与日期有关的年、月、日、一个学生的自然信息等,如果能够把这些有关联的数据有机地结合起来并能利用一个变量(数组或指针)来管理,将会大大提高对这些数据的处理效率。C/C++语言中提供了结构体数据类型、共用体数据类型和枚举数据类型用来描述用户自定义的数据结构。 7.1结构体类型 7.1.1结构体类型的定义 结构体类型是一种较为复杂但却非常灵活的构造型数据类型。 一个结构体类型由若干个称为成员(或域)的成分组成。 其中,结构体类型的成员允许为不同的数据类型,在C程序中使用保留字struct定义结构体类型。 例如,在学生成绩管理信息系统中,一个学生的信息可以包括姓名、性别、年龄、成绩等数据项,这些数据类型不同,可以将其定义成一个结构体类型。 用户可以根据需要定义自己的结构体类型。 定义结构体类型时应注意以下几点: (1) 结构体类型成员可以是任何基本数据类型的变量,如int、char、float和double型等。 (2) 结构体类型成员也可以是数组、指针型变量。 struct list { int data[2]; char c1; char *next; }; (3) 在C++中,定义结构体类型时其各个成员所占空间的大小必须是确定的,从而相应类型的结构变量所占空间的大小相对确定的。结构体类型student的长度为:20+1+4+4=29,但由于计算机是按“字长”分配存储空间,字长是16/32的倍数。 (4) 在同一结构体类型内各成员的名称不能相同。但不同结构体类型中的成员名可以相同,并且结构体类型的成员名可以与程序中的变量名相同。 7.1.2 结构体类型变量的定义 1.先定义结构体类型,然后这种结构体类型的变量 2.在声明类型的同时定义变量 3.在声明类型的同时定义变量,但没有结构体类型名 类型与变量的概念说明: (1)类型与变量是不同的概念。 对变量赋值、存取、运算,不能对一个类型操作。在编译时,对类型不分配内存空间,只对变量分配内存空间。 (2)结构体类型变量可以是全局型、自动型、静态型3种存储类别,没有register存储类别。 (3) 对结构体类型变量的成员分配存储空间时,是按结构体类型说明的成员顺序进行的。但这些成员的实际存储单元之间有可能是不连续的,这与机器结构有关。变量占用内存的字节数可以用sizeof求出。 (4) 结构体类型中的成员也可以是一个结构体类型变量。 7.1.3 结构体类型变量的初始化 结构体类型变量初始化如同简单变量。 7.1.4 结构体类型变量成员的引用 若成员本身又属一个结构体类型,系统只能对最低级成 员进行赋值或存取以及运算。 结构体类型成员可像普通变量一样进行各种运算。 stu2.score=stu1.score+10.0; sum= stu2.score+stu1.score; 注意:两个同类型的结构型变量可以直接互相赋值。 stu1=stu2; stu1.birthday= stu2.birthday 【例7.1】建立一个简单的学生信息表,包括:姓名、性别、年龄及一门课程的成绩,并显示出来。 struct student { char name[20]; char sex; int age; float score; }stu; 7.1.5 结构体类型数组的定义和初始化 1.结构体类型数组的定义 结构体类型数组中的每个数组元素都是一个结构体类型的数据,与变量的定义方式类似,又3种方式。 2.结构体类型数组的初始化 struct student { char name[20]; char sex; int age; float score; }stu[3]={ {Wang Hong,?F ?,,20,90.0 }, {Li Ming,?M?,,19,86.0}, {Sun Mei,?F ?,?,21,83.0} }; 7.1.5 结构体类型数组元素的引用 【例7.2】统计学生的平均成绩和不及格同学姓名和不及格人数。 void main() { int i,n=0; float ave,sum=0.0; for(i=0;i3;i++) { sum+=stu[i].score; if(stu[i].score60) {

文档评论(0)

资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档