- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构体(第九章)第九章 结构体9.1.1 定义和使用结构体定义结构体类型struct studentstruct student{int num; //学号为整形char name[20]; //姓名为字符串char sex; //性别为字符型int age; //年龄为整形float score; //分数为浮点型char addr[30]; //地址为字符串}; //注意最后有一个分号声明一个结构体类型的一般形式:struct 结构体名{成员列表};注意:*节后体类型的名字是由一个关键字struct和结构体名二者组合而成(如struct student)。结构体名是由用户指定的,又称“结构体标记”(struct tag),以区别其他结构体类型。上面的结构体声明中struct就是结构体名(结构体标记)。 *结构体变量并不是只有一种,而是可以设计出许多种。 *成员名可以是一个结构体变量。例如:struct data{int month;int day;int year;};struct student{int num;char name[20];char sex;int age;struct data birthday; //将成员名birthday指定为struct data类型。char addr[30];}; *“结构体”这个词是根据英文单词structure译出的。9.1.2 定义结构体类型变量1.先声明结构体变量,再定义该类型的变量。example:struct student student1,student2;(结构体类型名) ( 结构体变量名 )这种形式和定义其他类型的变量形式(如int a,b;)是相似的。2.在声明类型的同时定义变量 这种定义的一般形式是:struct 结构体名{成员列表}变量名表列;struct student {int num;char name[20];char sex;int age;float score;char addr[30];}student1,student2;3.不指定类型名而直接定义结构体类型变量其一般形式:struct{成员列表}变量名表列; 这种形式制定了一个无名的结构体类型,它没有名字,显然不能再以此结构体类型去定义其他变量。这种方式用的不多。说明:* 结构体类型与结构体变量是不同的概念。* 结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。* 对于结构体变量中的成员,可以单独使用,他的地位与作用相当于普通变量。9.1.3 结构体变量的初始化和引用question:把一个学生的信息放在一个结构体变量中,然后输出这个学生的信息。#includestdio.hvoid main(){struct student{int num;char name[20];char sex;char addr[20];}student1={10101,LinLin,M,123 beijing road};printf(NO.:%d\nname:%s\nsex:%c\naddress:%s\n,student1.num,student1.name,student1.sex,student1.addr);}引用结构体变量应遵循以下规则:* 可以引用结构体变量中成员的值,引用方式如下结构体变量名.成员名注意:不能通过结构体变量名来得到结构体变量所有成员的值。* 如果成员本身又属于一个结构体类型,则要用多个成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取及运算。 * 对结构体变量的成员可以像普通变量一样进行各种计算(根据其类型的决定可以进行的运算)。如:student2.score=student1.score;sum=student1.score+student2.score;student1.age++;* 同类的结构体变量可以互相赋值,如:student1=student2;* 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。例如: scanf(%d,student.num);(输入student1.num的值) printf(%o,student);(输出结构体变量student1的首地址)但不能用以下形式的语句整体读入结构体变量 scanf(%d,%s,%c,%f,%s,student);结构体变量的地址主要作函数参数,通过它来传递结构体变量的地址。question:输入学生的学号、姓名、和成绩,输出成绩较高的学生的学号、姓名和成绩#includestdio.hvoid main(){struct student /
文档评论(0)