第9章复合数据类型
结构体类型
共同体类型
位段结构类型
枚举类型
自定义类型(typedef)
程序举例
开始
结束
本章学****目标
l 迄今为止,我们已经介绍了C语言中的基本数据类型(整型、实型、字符型)及派生类型(数组和指针)。但实际处理问题时,只有这些数据类型是不够的,故而C语言给用户提供了自己声明数据类型的权利,这些类型称为构造类型。本章将介绍四种构造类型:结构体类型、共同体类型、枚举类型及自定义类型。
返回本章首页
结构体类型
结构体变量
结构体数组
结构体指针
单链表
返回本章首页
结构体变量
一、结构体类型的声明
结构体类型声明的一般形式:
struct 结构体名
{ 成员列表
};
返回本节
结构体变量
其中,
①“struct”是C语言的关键字,是结构体类型的标志;
②“结构体名”称为结构标记,即代表花括号内的声明,可以用它作为该声明的简写形式,书写要符合C语言标识符命名规则;
③“成员列表”可以是若干个不同类型的变量、数组;
④结构体类型的大小是其所有成员所占空间字节数相加之和;
⑤花括号外的分号必不可少;
返回本节
结构体变量
例如:struct date
{ int year,month,day; };也可以写成,
struct date
{int year;
int month;
int day;
};
返回本节
结构体变量
以上结构体类型的全称是"struct date",我们用它来描述某一天的日期;它有三个成员项year、month、day,分别代表年、月、日;类型大小是三个整型变量的存储字节数相加之和:6B(字节)。
返回本节
结构体变量
⑥结构体类型的声明还允许嵌套,例如:
struct student
{int num;
char name[20];
struct date birthday;
};
返回本节
结构体变量
结构体“struct student”可以用来描述某个学生的相关信息,其中第三个成员birthday本身也是一个结构体类型,称为嵌套。我们还可以把struct date的声明嵌套进来,形成如下所示形式:
struct student
{int num;
char name[20];
struct date
{ int year,month,day;
}birthday;
};
返回本节
结构体变量
注意,struct声明定义了一种数据类型,只是列出了该数据结构的各成员组成情况,即给出了一个数据结构的“模版”,系统并没有为其分配存储空间,只有用这种类型定义变量或数组时系统才会为变量或数组分配存储空间。对于这一点,大家可以这样理解,“struct date”、“struct student”与int、float在语法上具有类似的意义,只不过int、float的类型声明是由系统完成的,对于int、float本身系统并不会为其分配空间。
返回本节
复合数据类型 来自淘豆网www.taodocs.com转载请标明出处.