- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 结构体与共用体 10.1 结构体类型与结构体变量的定义 10.2 结构变量的初始化与引用 10.3 结构体数组 10.4 指向结构体类型数据的指针 10.5 结构体和函数 10.6 单链表 10.7 共用体 10.8 枚举类型 10.9 定义已有类型的别名 概述 在一些复杂的数据结构中,有时需要将不同类型的数据集合成一个有机的整体。 如:一个学生的情况纪录单可能包括学号、姓名、性别、年龄、成绩、家庭地址等数据项。这样的整体,C语言中称为“结构体”数据结构,简称“结构体” (structure)。 结构体是一种较为复杂而又非常灵活的构造型的数据类型。一个结构体类型的数据可以由若干个称为成员(或域)的成分组成。不同的结构体类型其成员不同。对于一个具体的结构体而言,其成员的数量是固定的,这一点与数组相同,但该结构体中各成员的数据类型可以不同,这是结构体与数组的重要区别。 10.1 结构体类型与结构体变量的定义 10.1.1 结构体类型定义 结构体类型定义的一般形式: struct 结构体名 { 数据类型 数据项1; 数据类型 数据项2; …… …… 数据类型 数据项n;}; 其中struct是关键字,结构体成员表列也称域表,每个成员也称结构体中的一个域。对每个成员都应进行类型说明。 例如:struct student { int num; char name[20]; char sex; int age; float score; }; 对结构体类型定义的说明 1 结构体类型定义是由程序员根据设计需要自行定义的,因此结构体类型可以有多种,每种结构体类型都可以有自己的结构体名以及包含不同数目的成员。 2 若定义了一个结构体类型,那仅仅是定义类型而已,而不分配内存单元。例如上面已经定义了的struct student结构体类型,struct student可以用来定义一个该类型的变量,并不意味着它的那些成员被分配了内存空间。 3 成员名可以与程序中的变量名相同,两者不代表同一对象。例如,程序中可以另定义变量num,它与struct student中的num是两回事,互不干扰。 4 结构体成员类型可以是整型、实型、字符型、数组、指针等基本类型或构造类型,还可以是已定义过的结构体类型。 struct date { int year; int month; int day; }; struct student { int num; char name[20]; char sex; struct date birthday; float score[4]; }; 10.1.2 结构体变量定义 结构体类型的定义只是指出了该结构的组成情况,表明存在有此种类型的结构模型。该结构体类型中不能存放具体的数据,系统也不会为它分配实际的存贮单元。为了能在程序中使用结构体类型的数据,应在定义了某种结构体类型以后,再定义该结构体类型的变量,以便在结构体类型的变量中存放具体的数据。 结构体变量的定义有三种形式: 结构体变量定义1 1.先声明结构体类型,再定义结构体类型的变量。 struct student { int num; char name[20]; char sex; int age; float score[4]; }; struct student st1, st2; 结构体变量定义2 2.在声明结构体类型的同时定义结构体类型的变量。 struct student { int num; char name[20]; char sex; int age; float score[4]; }st1,st2; 结构体变量定义3 3.直接定义结构体类型变量。 struct { int num; char name[20]; char sex; int age; flo
文档评论(0)