- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5章结构体和共用体
第5章 结构体和共用体 5.1 结 构 体 5.2 共 用 体 5.1 结 构 体 5.1.1 结构体的定义 结构体定义的一般语法形式为: struct 结构体名 { 数据类型 成员1; 数据类型 成员2; ┇ 数据类型 成员n; }; 注意:定义结构体时,最后的分号不可缺少。 5.1.2 结构体变量的定义 ? 结构体的定义仅仅是给出了该结构体的组成情况, 定义结构体变量可采用以下3种形式: (1)直接定义 直接定义是指在定义结构体的同时定义结构体变量。例如: struct worker { char name[10]; //工人姓名 float salary; //工人工资 } worker1,worker2; ? (2)间接定义 间接定义是指先定义结构体,然后再定义结构体变量。例如: struct worker { char name[10]; //工人姓名 float salary; //工人工资 }; struct worker worker1,worker2; (3)无名定义 当采用直接方式定义结构体变量时,可以省略结构体名。例如: struct { char name[10]; //工人姓名 float salary; //工人工资 } worker1,worker2; 注意:无名定义由于省略了结构体名,因此以后不能再用这种结构体类型定义其它结构体变量。 5.1.3 结构体变量的初始化 ? 语法格式为: struct 结构体名 结构体变量名={初值}; 例如: struct student zhangfan={53101,zhang fan,m,86,92,93} 5.1.4 结构体变量的使用 ? 使用结构体变量的语法格式为: 结构体变量.成员名 其中,符号“.”是成员运算符,用于访问一个结构体变量中的某个结构体成员。 【例5.1】设计一个“学生”结构体,包括姓名、性别、年龄、地址等成员。然后定义结构体变量并进行初始化,输出显示结果。 #includeiostream.h #includestring.h struct student { char name[10]; char sex[3]; int age; char adderss[100]; }; struct student stu1={李明,男,22, 北京市}; void main() { struct student stu1={李明,男,22, 北京市}; coutstu1.name\tstu1.sex\tstu1.age\tstu1.adderssendl; strcpy(stu1.name,王芳); strcpy(stu1.sex,女); stu1.age=20; strcpy(stu1.adderss,天津市); coutstu1.name\tstu1.sex\tstu1.age\tstu1.adderssendl; } 程序运行后,输出结果为: 李明 男 22 北京市 王芳 女 20 天津市 5.1.5 结构体数组 如果数组中的每个元素都是一个结构体变量,则称这样的数组为“结构体数组”。 5.1.5.1 结构体数组的定义 结构体数组可以采用3种定义方式:直接定义、间接定义和无名定义。例如: struct worker { char name[10]; float salary; }workers[2]; //直接定义 ? struct worker { char name[10]; float salary; }; worker workers[2]; //间接定义 ? struct { char name[10]; float salary; }workers[2]; //无名定义 5.1.5.2 结构体数组的初始化 结构体数组初始化的一般形式为: struct 结构体名 结构体数组名[]={初值}; 例如: struct worker { char name[10]; float salary; }workers[2]={{li ming,800},{liu xiang,900}}; 【例5.2】从键盘输入学生的学号、姓名以及3门课程的成绩,保存到结构体数组中,并且要求用数组成员保存3门课程的成绩和平均成绩。计算每个人3门课程的平均成绩。 #includeiostream.h #includestdio.h #define n
文档评论(0)