- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第09单元 结构体、共用体和枚举类型
C++高级语言程序设计 袁开国 北京邮电大学计算机学院 作业 分另用结构体和位域两种方法存储学生的身高、体重和成绩等信息,并以总和为依据进行排序 第9章 结构体、共用体和枚举类型 9.1 结构体的定义及应用 9.2 位域* 9.3 共用体的定义及应用 9.4 枚举类型 9.1 结构体的定义及应用 设每个学生的数据包括: 姓名:字符型数组 年龄:无符号整型 成绩:单精度浮点类型 如何存放10位学生的原始数据? 解:定义3个数组分别存放10位学生的姓名、年龄和成绩,用数组下标区别不同的学生: char name[10][20]; //存放10位学生的姓名 int age[10]; // 年龄 float score[10]; // 成绩 用name[i]、age[i]和score[i]表示第i个学生数据。 不足:变量多、未直接反映同一学生数据间的联系。 改进: ①定义结构体类型,描述同一学生的多个数据: struct student{//反映同一学生数据间的联系 char name[20]; //姓名 int age; //年龄 float score; //成绩 }; ②定义student类型的数组,存放10位学生的数据: student s[10]; //变量少 结构体可将不同类型的数据组织为一个整体。 9.1.1 结构体类型的定义 结构体类型需先定义后使用,其定义格式: struct 结构体类型名{ 类型1 成员1; 类型2 成员2; …… }; 9.1.2 结构体类型变量的定义 定义结构体类型变量的格式为: 结构体类型名 变量列表; 或 struct 结构体类型名 变量列表; 其中,结构体类型名为已定义的类型;多个变量之间用逗号分隔;后一种格式与C兼容。 例如: student s1,s2,s3[10]; 或 struct student s1,s2,s3[10]; student类型变量s1的内存分配图 结构体类型变量定义的其他形式 结构体类型变量也可在声明结构体类型的同时定义。 例如: struct Date{ int year,month,day; }today,yesterday; 再如: struct{ //定义一个无名结构类型 int a; float b; }x,y; 无名结构体类型不能在该类型定义之外定义其变量。 结构体类型变量的初始化 结构体变量的初始化:与数组的初始化方式类似,在花括号中,按结构体成员说明的顺序依次列出其值。 例如: student s1={Jenny,20,98}; Date today={2007,1,2}; struct Complex{ float real,image; }c1={2.0f,3.0f},c2; 9.1.3 结构体类型变量的使用 访问结构体变量成员的格式为: 结构体变量.成员名 其中“.”是成员访问运算符。例如: today.year 表示访问结构体变量today的成员year。 相同结构体类型的变量之间可直接赋值。例如: struct weather{ double temp,wind; }w1={7.5,3.2},w2=w1; 其中“w2=w1;”等同于: w2.temp=w1.temp; w2.wind=w1.wind; 结构体类型变量不能直接输入/输出,其成员能否直接输入/输出,取决于其成员的类型,若是基本类型或字符数组,则可直接输入/输出。如: cins1; //错误 cins1.ages1.score; //正确 couts1; //错误 couts1.ages1.score;//正确 结构体类型变量做函数的形参时,调用函数的实参必须是相同结构体类型的变量。参数的传递方式为值传递,系统将实参的每个成员逐个拷贝给对应的形参成员。结构体类型变量也可做函数的返回值。 例9.1 编写求两分数之和的函数,并用它求1/8+5/24。 #includeiostream.h struct Fraction{ int num,den; //分别为分数的分子和分
文档评论(0)