- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[管理学]chapter8-1
* * 第8章 结构体、联合体和枚举类型 8.1 概述 8.2 typedef使用 8.3 结构体 8.4 共用体 8.5 枚举类型 第8章 结构体、联合体和枚举类型 至此,在C语言的数据类型中,还有三种(结构体、共用体和枚举型)类型没有说明。本章的目的是阐明它们的定义方法及引用方法以及这些类型的特点。 需要说明的有两点: 这三种类型属于用户自定义类型,前面已经说明过的类型是用标准的类型标识符(int,float,double,char等)来定义变量。现在需要用户自行来定义类型标识符,然后用已定义的类型标识符再来定义变量。 在这三种类型中,枚举类型属于基本类型(非构造类型),而其余两种均属于构造类型。而结构体与共用体又有许多相似之处。基于它们均是用户自定义类型,故将它们放在一起来讨论。 8.2 用typedef说明一种新类型名 C语言允许用typedef说明一种新类型名,说明新类型名的语句一般形式为: typedef 类型名1 类型名2; 其中,“类型名1”必须是在此语句之前已有定义的类型标识符。“类型名2”是一个用户定义的类型标识符,用作新的类型名。 注意: typedef语句的作用仅仅是用“类型名2”来代表已存在的“类型名1”,并未产生新的数据类型。原有类型名依然有效。 例如: typedef int INTEGER; 则以后,可以利用INTEGER来定义变量,作用与用int是一样的。 例如: INTEGER m,n; 等价于 int m,n; INTEGER是int的一个别名 为了便于识别,一般习惯将新的类型名用大写字母表示。 又如: typedef char *CHARP; CHARP p; 等价于: char *p; 若用typedef说明一个新的类型名,其方法为:(谭浩强书p295) (1)先按定义变量的方法写出定义体 ; (2)将变量名换成新类型名 ; (3)在最前面加上typedef ; (4)最后就可以使用新的类型名 。 例如:定义一个数组类型 int n [100]; NUM typedef 则:NUM n ; 等价于 int n[100]; 另外,typedef与#define是有区别的: 如:typedef int COUNT; COUNT a; 与 #define COUNT int COUNT a; 效果是一样的。 但#define在预编译时处理,只做简单的替换; 而typedef则在编译时处理,不是做简单的替换。 8.3 结构体类型 引入结构体数据类型是需要将不同类型的数据组合成一个有机的整体。这些组合在一个整体中的数据是相互联系的。 例如,表达一个学生的信息:学号(长整型)、姓名(字符串)、性别(枚举/字符型)、年龄(整型)、成绩(实型)、住址(字符串) 。 这些信息是表示一个学生的完整信息,但这些信息所需要表示的数据类型却不相同,我们需要将这些不同数据类型但却是一个完整整体的信息组合在一起,用如下形式表示: num name sex age score address 学号 姓名 性别 年龄 成绩 住址 num name sex age score address 由此可以看出: 1.这个整体数据的各成员一般是具有不同类型的(也可以类型相同)。这一点是与数组的基本差别所在。在数组中各成员的类型必须相同。 2.本例中,其各成员有的是基本类型,有的也可以是构造类型。比如学生信息中成绩(score)若是多门课的话,那么score分量可以是一数组,再比如,如果把住址分量(addr)表示为:省、市、县,那么addr又可以是一个结构体。 3.每个结构体包含哪些成员及各成员的类型是什么,必须事先定义。这就是所谓的自定义类型。 4. 注意:在这个整体中,各类数据的地址是彼此相邻的。 8.3.1 结构体类型的说明 结构体类型说明的一般形式为: struct 结构体标识名 { 类型名1 结构成员名表1; 类型名2 结构成员名表2; . . . 类型名n 结构成员名表n; }; 例8.1 定义描述学生信息的
您可能关注的文档
最近下载
- 服务项目档案整理与管理方案.docx VIP
- 永川区2024-2025学年七年级上期期末数学试题.pdf VIP
- 小学一年级数学上册每课一练(全册打印版) .pdf VIP
- 永川区2024-2025(上)九年级物理试题 .pdf VIP
- 摩登家庭台词剧本第一季第一集中英双语左右对照.pdf VIP
- 2022-2023学年重庆市永川区八年级(上)期末数学试卷.doc VIP
- xxxx局文书档案整理及数字化项目实施方案(技术标 53页).doc VIP
- 水利水电工程合理使用年限及耐久性设计规范(SL 654-2014).pdf VIP
- 2024-2025学年重庆市永川区八年级(上)期末数学试卷(含解析).docx VIP
- 《汽车理论》全套课件 (余志生主编 第五版).ppt VIP
文档评论(0)