- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计教程(第4版)
第9章 结构
李丽娟 2013年2月
第9章 结构
本章主要内容
1.了解结构数据类型的定义及使用。
2. 了解结构数据类型的意义及作用。
3. 了解结构变量与函数的关系。
4. 掌握链表的作用及操作。
5. 了解联合数据类型的定义及使用。
6. 了解枚举类型的定义及使用。
第9章 结构
?结构体数据类型:一种自定义的数据类型。
由不同数据类型的数据组合而成的数据整体。结构体中所包含的数据元素称之为成员。
如:“职员”——→一种结构体
描述职员的信息有:
编号、姓名、年龄、性别、身份证号码、民族、文化程度、职务、住址、联系电话等。
9.1 结构体数据类型
9.1.1 结构体的定义
?结构类型的定义形式:
struct 结构体名
{
成员项表列;
};
?成员项表列同简单变量的定义形式相同。
例如:对“职员”数据,可以定义如下的结构体类型:
struct person
{
long no; /*职员号*/
char name[12]; /*姓名*/
int age; /*年龄*/
char sex; /*性别*/
long indentityNo; /*身份证号*/
char education[12]; /*学历*/
char addr[40]; /*住址*/
long telno; /*电话号码*/
};
9.1 结构体数据类型
9.1.2 结构体变量的定义
?定义了结构体之后,就可以定义结构体变量。
?结构变量的定义形式。
(1)类型标识符 变量名列表;
例如: struct person stu, worker;
(2)在定义一个结构体类型的同时定义结构体类型变量:
struct 结构体名
{
成员项列表;
}变量名列表;
(3)直接定义结构体类型的变量:
struct
{
成员项列表;
}变量名列表;
9.1 结构体数据类型
9.1.3 结构体变量的初始化
(略)
9.1.4 结构体变量成员的引用
(1)引用结构体变量中的成员。
引用格式:结构变量名.成员名
例如: stu.no、 stu.age、 stu.name[0]等。
?成员名不能单独代表变量,不能直接使用结构中的成员名。
?若结构体类型中含有另一个结构类型,访问该成员时,应采取逐级访问的方法。
(2)将结构体变量作为一个整体来使用。
?结构体变量可以相互赋值。
(条件是这两个变量必须具有相同的结构体类型。)
9.1 结构体数据类型
例1:阅读程序example9_1.c,了解结构体成员的使用方法。
9.1.5 结构体变量成员的输入/输出
?只允许对结构变量的成员进行输入输出。
?不允许将结构体变量作为整体进行输入或输出操作。
9.2 结构体数组
9.2.1 结构体数组的定义
?结构体数组的定义:
(1)先定义结构体,再定义结构体数组。
struct 结构体名
{
成员项表列
};
struct 结构体名 数组名 [数组大小];
(2)在定义结构体的同时,定义结构体数组。
struct 结构体名
{
成员项表列
}数组名[数组大小];
9.2 结构体数组
(3)直接定义结构体变量而不定义结构体名。
struct
{
成员项表列
}数组名[数组大小];
9.2.2 结构体数组成员的初始化和引用
(略)
9.3 结构体变量与函数
9.3.1 函数的形参与实参为结构体
?作用:传值
例2:阅读程序example9_2.c,了解结构变量作为函数参数的作用。
9.3.2 函数的返回值类型为结构体
?新的C标准中允许函数的返回值为结构体类型的值。
例3:修改例9-2所示的程序,将“输入购书信息” 模块的返回值修改成结构类型。
9.4 联合体数据类型
9.4 联合体数据类型
?联合体又称为共用体。
?联合体类型与结构体类型的同异:
相同之处:定义形式与结构体类型的定义形式相同。
不同之处: ①关键字不同,共用体的关键字为union。
②占用的内存单元不同。
?特点:
不同类型的数组项在内存中所占用的起始单元是相同的。
?提示:
注意联合类型变量的使用特点。
9.4 联合体
文档评论(0)