内容正文:
*
《C语言程序设计教程》
(第二版)
《C语言程序设计教程》(第二版)
第8章 结构体、共用体与位运算
本章要点:
◆ 了解结构体的基本概念和作用
◆ 掌握结构体类型变量的定义和引用方法
◆ 掌握结构体数组和指向结构体类型数据的指针概念
◆ 掌握使用指针处理链表的方法
◆ 掌握共用体的概念、作用和特点
◆ 了解枚举类型定义方法和使用
◆ 了解位运算符及位运算方法
*
《C语言程序设计教程》(第二版)
第8章 结构体、共用体与位运算
目 录
8.1 结构体
8.2 共用体
8.3 枚举类型
8.4 链表
8.5 位运算
*
《C语言程序设计教程》(第二版)
8.1 结构体
在现实生活中,一个事物有多方面的特征。比如,一个人有姓名、年龄、性别、身高、学历、职业等多项特征,一台计算机有主频、主板型号、硬盘容量、软驱尺寸、光驱倍速等多项参数。因为需要多种数据类型来描述这些数据项,而这些数据是相互联系、不可分割的整体,采用过去介绍的简单类型是无法描述的。因此C语言提供了一种数据类型,称为结构体,专门用来描述一个事物对象的多项数据。在其它高级语言中,这种数据类型也称为记录。
《C语言程序设计教程》(第二版)
8.1 结构体
例如一个学生档案的结构
数据项名称 数据项变量 数据项类型 数据项宽度
学号 Num int 2
姓名 Name char 8
性别 Sex char 2
出生时间 Birthday char 10
入学时间 matriculate_date char 10
平均成绩 Score int
《C语言程序设计教程》(第二版)
8.1 结构体
8.1.1 结构体类型
和简单类型不同,在定义结构体类型变量时,必须先定义结构体类型,然后再定义结构体类型变量。
1. 结构体类型的定义
struct 结构体名
{成员列表};
其中成员列表的格式为:
类型 成员名;
例如:关于学生记录的结构体可定义为:
struct student_type
{
int num;
char name[9];
char sex[3];
char birthday[11];
char matriculate_date[11];
int score;
};
《C语言程序设计教程》(第二版)
8.1 结构体
8.1.1 结构体类型
2. 定义结构体类型变量
1)先定义结构体类型后定义结构体变量
struct 结构体类型名 结构体变量名列表;
2)在定义结构体类型的同时,定义结构体变量
struct 结构体名
{成员列表} 变量名列表;
3)直接定义结构体变量
struct
{ 成员列表} 变量列表;
《C语言程序设计教程》(第二版)
再定义学生信息结构体
8.1 结构体
8.1.1 结构体类型
3. 结构体类型的嵌套定义
结构体类型中成员的类型除了可以是一般数据类型外,还可以是一个结构体类型,这就构成了结构体类型的嵌套。例如:
struct date
{ int month;
int day;
int year;
};
struct student_type1
{ int num;
char name[9];
char sex[3];
struct date birthday;
struct date matriculate_date;
int score;
};
先定义日期结构体
《C语言程序设计教程》(第二版)
8.1 结构体
8.1.2 结构体类型变量的初始化及引用
1. 结构体类型变量的初始化
在定义结构体变量时可以对结构体变量中各成员进行初始化,其格式是:
例如:
struct student_type student1={9901,"张海","男","11/09/1980", "09/01/1999",85};
struct student_type1 student2={9902,"汪洋","男",4,8,1981,9,1,1999,85};
struct 结构体类型名 变量名={初值表};
《C语言程序设计教程》(第二版)
8.1 结构体
8.1.2 结构体类型变量的初始化及引用
2. 结构体类型变量的引用