1 / 162
文档名称:

第10章 结构体与共用体.ppt

格式:ppt   页数:162
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第10章 结构体与共用体.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第10章 结构体与共用体.ppt

文档介绍

文档介绍:第10章结构体与共用体
概述
定义结构体类型变量的方法
结构体变量的引用
结构体变量的初始化
结构体数组
指向结构体类型数据的指针
用指针处理链表
共用体
枚举类型
用typedef定义类型
习题
概述
迄今为止,已介绍了基本类型(或称简单类型)的变量(如整型、实型、字符型变量等),也介绍了一种构造类型数据——数组,数组中的各元素是属于同一个类型的。但是只有这些数据类型是不够的。有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是互相联系的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项。这些项都与某一学生相联系。。可以看到性别(sex)、年龄(age)、成绩(score)、地址(addr)是属于学号为10010和名为“Li Fun”的学生的。如果将num、name、sex、age、score、addr分别定义为互相独立的简单变量,难以反映它们之间的内在联系。
应当把它们组织成一个组合项,在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C语言允许用户自己指定这样一种数据结构,它称为结构体(structure)。它相当于其他高级语言中的“记录”。

,但是C语言没有提供这种现成的数据类型,因此用户必须要在程序中建立所需的结构体类型。例如:
struct student
{int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
注意不要忽略最后的分号。上面由程序设计者指定了一个新的结构体类型struct student(struct是声明结构体类型时所必须使用的关键字,不能省略),它向编译系统声明这是一个“结构体类型”,它包括num、name、sex、age、score、addr等不同类型的数据项。应当说明struct student是一个类型名,它和系统提供的标准类型(如int、char、float、double等)一样具有同样的地位和作用,都可以用来定义变量的类型,只不过结构体类型需要由用户自己指定而已。
声明一个结构体类型的一般形式为
struct结构体名
{成员表列};
“结构体名”用作结构体类型的标志,它又称“结构体标记”(structure tag) 。上面的结构体声明中student就是结构体名(结构体标记)。大括弧内是该结构体中的各个成员,由它们组成一个结构体。例如,上例中的num、name、sex等都是成员。对各成员都应进行类型声明,即
类型名成员名
也可以把“成员表列”称为“域表”。每一个成员也称为结构体中的一个域。成员名定名规与变量名同。
“结构体”这个词是根据英文单词structure译出的。有些C语言书把structure直译为“结构”。作者认为译作“结构”会与一般含义上的“结构”混淆(例如,数据结构、程序结构、控制结构等)。日本把structure译作“结构体”或“构造体”,作者认为译作“结构体”比译作“结构”更确切一些,不致与一般含义上的“结构”混淆。
定义结构体类型变量的方法
前面只是指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。可以采取以下三种方法定义结构体类型变量。
1. 先声明结构体类型再定义变量名
如上面已定义了一个结构体类型struct student,可以用它来定义变量。如:
struct student student1, student2
结构体类型名结构体变量名;
定义了student1和student2为struct student类型的变量,即它们具有struct student类型的结构。。

在定义了结构体变量后,系统会为之分配内存单元。例如student1和student2在内存中各占59个字节(2+20+1+2+4+30=59)。
应当注意,将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如struct student类型)。因为可以定义出许许多多种具体的结构体类型。而在定义变量为整型时,只需指定为int型即可。
如果程序规模比较大,往往将对结构体类型的声明集中放到一个文件(“头文件”)中。哪个源文件需用到此结构体类型则可用#include命令将

最近更新

人文护理与跨文化护理 25页

体温监测的仪器选择与操作规范 56页

儿科护理评估工具 32页

2026年八年级作文写作素材 25页

2023年三亚中瑞酒店管理职业学院单招职业技能.. 39页

2023年三门峡社会管理职业学院单招职业技能测.. 39页

2023年上海商学院单招职业适应性测试题库附答.. 42页

2026年全校运动会方案策划书范文 49页

2023年上海海事大学单招职业适应性测试题库新.. 40页

2023年丽水学院单招职业适应性测试题库最新 41页

2023年九州职业技术学院单招职业技能测试题库.. 42页

2023年云南工程职业学院单招职业技能测试模拟.. 41页

2023年云南省德宏傣族景颇族自治州单招职业倾.. 40页

2023年仙桃职业学院单招职业技能测试模拟测试.. 40页

2023年保定理工学院单招职业技能考试模拟测试.. 41页

2023年信阳航空职业学院单招职业倾向性测试题.. 39页

2023年兰州航空职业技术学院单招综合素质考试.. 41页

2023年内蒙古建筑职业技术学院单招综合素质考.. 40页

2023年内蒙古能源职业学院单招职业倾向性考试.. 40页

2026年兔年元宵节古诗词金句 10页

2026年免费跨年主题活动方案 56页

2023年南京工业职业技术大学单招职业技能考试.. 40页

2025年广州卫生职业技术学院单招职业技能测试.. 64页

美团代运营业务委托合同 6页

新概念青少版2A各单元重点归纳 15页

九年级家长会课件PPT下载(初三2班) 25页

年产3000万片硝苯地平缓释片车间设计 40页

DB61∕T 926-2014 火灾高危单位消防安全管理与.. 45页

AQ 7011-2018《高温熔融金属吊运安全规程》 11页

保洁外包单位月度考评表 3页