1 / 38
文档名称:

第4章 构造型数据类型 之 结构体.ppt

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

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

分享

预览

第4章 构造型数据类型 之 结构体.ppt

上传人:花开花落 2018/10/26 文件大小:183 KB

下载得到文件列表

第4章 构造型数据类型 之 结构体.ppt

相关文档

文档介绍

文档介绍:结构体
结构体的概念
一个数组由类型相同的元素组成,但有些数据类型可能由性质不同的成员组成,这些成员相互关联组成一个整体数据。例如,一个职工的工作证号(number)、姓名(name)、性别(sex)、年龄(age)、部门(department)、工资(wage)等,这些成员都属于某个职工的数据项,如果分别定义成相互独立的变量,则不能体现它们之间的内在联系,而在程序中应该把它们视为同一个数据类型的成员。
第4章构造型数据类型 之结构体
第4章构造型数据类型 之结构体
利用C语言的结构体类型就可完成这一功能。例如:
struct staff
{
char number[8];
char name[10];
char sex;
int age;
char dep[20];
float wage[2];
};
number 数组
name数组
sex成员
age成员
dep成员
wage成员
struct staff
这样定义的结构体所需的空间是每个成员所需空间之和。这个struct staff共需要47个字节
第4章构造型数据类型 之结构体
以上定义了一个结构体类型struct staff,它包含了number、name、sex、age、dep、wage等不同类型的数据项。这样就可在程序中使用struct staff类型的变量,把一个职工的相关信息合在一起,组成一个整体来处理。
此时,就可以用struct staff这个类型定义出变量。
第4章构造型数据类型 之结构体
例如下面程序段:
struct staff worker;
/*定义一个structstaff类型的变量worker */
=’M’;
/*给worker变量的sex成员赋值’M’*/
strcpy(worker .name,”李大磊”);
/*给worker变量的name成员赋值”李大磊”*/
printf(“姓名:%s性别:%c\n”,,);
/*输出worker变量的数据*/
第4章构造型数据类型 之结构体
结构体类型及结构体变量

struct 结构体名
{
类型名1 结构体成员名表1;
类型名2 结构体成员名表2;
……
类型名n 结构体成员名表n;
};
第4章构造型数据类型 之结构体
说明:
(1)结构体类型名和结构体变量名由用户命名,命名规则与标识符命名规则相同(即与变量命名规则相同)。
(2)每个“结构体成员名表”都可以含有多个相同类型的成员名,它们之间以逗号隔开。结构体成员的命名规则与变量名的命名规则相同。结构体成员名允许与该结构体外的变量重名,不同结构体中的成员也可以同名,它们代表不同的对象,互不干扰。
(3)结构体成员的类型可以是基本类型、数组、共用体、指针、空类型或已说明过的结构体类型等。
(4)其中struct是C语言的关键字,是结构体类型的引导字,用于说明结构体类型以及定义结构体变量。
第4章构造型数据类型 之结构体
(5)结构体说明的花括号后要以分号“;”结尾。
例如一本书有书号、书名、作者、价格、简介等数据项,可以定义书的结构体类型如下:
struct book_type
{ int num;
char name[60];
char writer[30];
float price;
char brief[300];
};
这个分号不能少
第4章构造型数据类型 之结构体
结构体成员也可以是一个结构体变量,即结构体允许嵌套结构。
例如:下面语句定义了一个有嵌套结构的结构体。
struct date
{
unsigned char month;
unsigned char day;
unsigned year;
};
struct staff
{
char number[8];
char name[10];
struct date birthday;
int age;
char dep[20];
float wage[2];
};
结构体类型说明只是说明了一个构造型数据类型,系统没有分配任何存储空间。必须定义相应结构体类型的变量,系统才为该变量分配存储空间。类型与变量是不同的概念。
第4章构造型数据类型 之结构体

(1)紧跟在类型说明之后定义变量、数组
例如:
struct book_type
{
int num;
char name[60];
char writer[30];
flo