- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中的数据类型非常丰富,到目前为止,已介绍过的数据类型有:简单变量、数组和指针。简单变量是一个独立的变量,它同其他变量之间不存在固定的联系;数组则是同一类型数据的组合;指针类型数据主要用于动态存储分配。可以说,它们各有各的用途。 但在实际应用中常常会遇到这样的问题,要求把一些属于不同类型的数据作为一个整体来处理。举一个简单的例子,比如对一个学生的档案管理,需要将每个学生的姓名、年龄、性别、学生证号码、民族、文化程度、家庭住址、家庭电话等类型不同的数据列在一起。虽然这些数据均面向同一个处理对象——学生的属性,但它们却不属于同一类型。 对于这个实际问题,采用以前掌握的数据类型还难以处理这种复杂的数据结构。如果用简单变量来分别代表各个属性,不仅难以反应出它们的内在联系,而且使程序冗长难读。用数组则无法容纳不同类型的元素。于是C语言提供了一种称之为“结构体”类型的数据,它是由一些不同类型的数据组合而成的,如表10-1所示。 第10章 结构体、共用体与枚举型 10.1 结构体类型的基本知识 10.2 结构体数组 10.3 结构体变量与函数 10.4 结构体变量与指针 10.5 链表 10.6 枚举类型数据 10.7 共同体类型数据 10.8 用typedef定义类型 课后练习 【注】其中“文化程度”用上学年数来表示,如“12”表示高中毕业,“16”表示大学毕业。学生证号和电话号码因为都超过32767,故用long型。 对于这样一个由不同类型数据组成的“复杂类型”,C语言用下面的形式定义一个“结构体”类型。struct person { char name[20]; /* 姓名 */ int age; /* 年龄 */ char sex; /* 性别 */ long num; /* 身份证号码 */ char nat; /* 民族 */ int edu; /* 文化程度 */ char addr[20]; /* 地址 */ long tel; /* 电话号码 */ }; 10.1 结构体类型的基本知识10.1.1 结构体类型的定义形式 前面定义了一个由不同类型的数据项组成的复合类型,用来表示表10-1所示的数据集合。既然它是由一些基本数据类型组成的,那么这种数据类型应属于“构造类型”,C语言中称其为“结构体类型”。定义一个结构体类型的一般形式如下: struct 结构体名 { 成员项列表 }; (1)一个结构体类型通常由两部分组成:第一部分是关键字struct,第二部分称为“结构体名”,由程序设计者按标识符命名规则指定。这二者联合起来组成一个“类型标识符”,即“类型名”。(2)结构体由若干个数据项组成,每一个数据项都是一种已有(或已定义过)的类型,称为某一结构体的成员(或称为“域”)。域与域之间用分号隔开。(3)在结束结构体类型的定义时,不要忘写后花括弧的分号。 “结构体类型”不同于基本数据类型,其特点有:(1)结构体类型中的成员不能认为是已定义的一些普通的数组和变量(如name[20]、age、sex、num等),而是某结构体类型(struct person)的成员名。在程序中,允许另外定义与结构体类型的成员同名的变量,它们代表不同的对象。比如下面的语句在C语言中是合法的。struct person{ … int age; \*成员名*\ char sex; \*成员名*\ …}; int age; \*变量名*\ char sex; \*变量名*\ … (2)结构体类型可以有千千万万种,这是与基本类型不同的。为什么这样说呢?如果程序中定义i为整型变量,那么i必定占2个或4个字节,并按定点形式存放。但如果定义x是结构体类型变量,则它由哪些数据项组成,占多少字节,就要视情况而定了。因此“结构体类型”只是一个抽象的类型,它只表示了“由若干不同类型数据项组成的复合类型”,程序中定义和使用的应该是具体的有确定含义的结构体类型。例如,上面定义的struct person就是一种特定的结构体类型。(3)系统没有预先定义结构体类型,凡需使用结构体类型数据的,都必须在程序中自己定义。 (4)定义一个结构体类型,并不意味着系统将分配一段内存单元来存放各数据项成员
您可能关注的文档
- CorelDRAW X3平面设计实用教程 张平 张先俊 第1章新.ppt
- CorelDRAW X3平面设计实用教程 张平 张先俊 第2章新.ppt
- CorelDRAW X3平面设计实用教程 张平 张先俊 第4章新.ppt
- CorelDRAW X3平面设计实用教程 张平 张先俊 第5章新.ppt
- CorelDRAW X3平面设计实用教程 张平 张先俊 第7章新.ppt
- CorelDRAW X3平面设计实用教程 张平 张先俊 第9章新.ppt
- CorelDRAW X4平面设计实例教程 第1章教程 新.ppt
- CorelDRAW X4平面设计实例教程 第2章教程 新.ppt
- CorelDRAW X4平面设计实例教程 第3章教程 新.ppt
- CorelDRAW X4平面设计实例教程 第4章教程 新.ppt
最近下载
- 杭叉 XF系列 3.0-3.5T 叉车零件图册 2016.pdf VIP
- 信息技术基础(WPS版)配套课件.pptx VIP
- 仁爱英语 七年级下册 Unit6_Topic2_SectionB_教案.pdf VIP
- 部编版道德与法治小学三年级上册 安全记心上——平安出行.docx VIP
- 输变电复建工程110kV监理规划.doc VIP
- 2025年秋新人教版数学三年级上册全册课件.pptx
- 最新医务科业务学习计划 3篇.pptx VIP
- 2025苏教版数学三年级上册《一天的时间》单元教学课件.pptx
- 2023山东服装职业学院招聘笔试真题含答案详解.docx VIP
- 《植物的钙》课件.pptx VIP
文档评论(0)