- 1、本文档共79页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计第8章 结构体与共用体本节要点8.1 结构体类型和结构体变量8.1.1结构体类型-----概念例如:登记学生的信息,可能需要用到char型的姓名,int型或char型的学号,int型的年龄,char型的性别,float型的成绩等。又例如:对于记录一本书,需要char型的书名,char型的作者名,float型的价格等。这种新的数据类型可以包含多项数据,从而达到表示一个整体的目的,这种包含多个数据项,每个数据项的数据类型可能不同的变量集合称作结构体(structure)。8.1结构体类型和结构体变量8.1.1结构体类型-----定义格式: struct 结构体名 { 成员说明; };语法规则:① struct是关键字,表示开始定义结构体类型;② 结构体名要遵循标识符定义的规则;③ { }大括号不能省略,多个数据项的定义用此大括号括起来;④ 成员说明的形式类似变量、数组或者指针等的定义,但不能为成员进行初始化;⑤ { }大括号后的分号不能省略。8.1结构体类型和结构体变量8.1.1结构体类型-----定义例如: struct student { char name[20]; //姓名 int num; //学号 float score; //成绩 }; 这里student是一个结构体名字,struct student是自定义的数据类型名。结构体类型声明可以放在函数外,此时为全局结构体,类似全局变量,在它之后声明的所有函数都可以使用;也可以放在函数内,此时为局部结构体,类似局部变量,只能放在该函数内使用。8.1结构体类型和结构体变量8.1.1结构体类型-----定义还可以使用关键字typedef 给结构体的数据类型自定义一个简洁的名字,一般格式如下: typedef struct 结构体名 { 成员说明; }数据类型名称;语法规则:① typedef 是关键字,写在struct关键字之前;② 自定义的简洁类型名字,必须写在右括号之后,通常使用大写字符,以明显区分结构体名和结构体类型名;例如: typedef struct student { char name[20]; //姓名 int num; //学号 float score; //成绩 }STU;8.1结构体类型和结构体变量8.1.2结构体变量结构体类型变量的定义有以下三种方法:(1)先定义结构体类型再定义结构体变量一般形式如下: struct 结构体名 结构体变量名;语法规则:① 结构体变量名要遵循标识符命名规则;② 可以同时定义多个变量,之间用逗号分隔;③ 关键字struct要与结构体名一起使用,共同构成结构体类型名。例如:struct student stu1,stu2;8.1结构体类型和结构体变量8.1.2结构体变量(2)在定义结构体类型的同时定义变量一般形式如下: struct 结构体名 { 成员说明; }结构体变量名;语法规则:① 结构体变量在结构体类型定义的右大括号后进行定义,变量名要遵循标识符命名规则;② 可以同时定义多个变量,之间用逗号分隔;③ 结构体类型定义最后的分号,改在结构体变量名之后。例如:struct student{ char name[20]; int num; float score;}stu1,stu2;8.1结构体类型和结构体变量8.1.2结构体变量(3)直接定义结构体变量(不指定结构体名)一般形式如下: struct { 成员说明; }结构体变量名;语法规则:① 此种方式在定义结构体类型时省略了结构体的名字,没有完整的结构体类型名,被称为无名称的结构体类型;② 使用无名称的结构体类型定义结构体变量,结构体变量只能跟在右大括号后,不能在其它位置再定义此结构体类型的变量;③ 结构体类型没有名字,无法用它来声明函数的形参类型或者函数的返回值类型。例如:struct { char name[20]; int num; float score;}stu1,stu2;8.1结构体类型和结构体变量8.1.3结构体变量的初始化和引用(1)结构体类型的字节长度 结构体变量定义之后,内存就开辟一段内存空间去存储结构体变量的值,通常情况下结构体变量所占用内存的字节数等于所属结构体类型的所有成员字节数的总和,但也有例外。【例8.1】运行程序,查看结构体变量占用的内存字节数。 #includestdio.h struct student { char name[20]; int num; float score; }; 8.1结构体类型和结构体变量8.1.3结构体变量的初始化和引用struct test{ char a; int b; char c;};int mai
文档评论(0)