文档介绍:第十五章结构体、共用体和链表
第十五章结构体、共用体和链表
C语言中的数据类型分为两大类:基本类型(整型、字符型、单精度型、双精度型)和构造类型(数组、结构体、共用体等)。本章将介绍结构体与共用体的定义和使用。
一个问题
在程序里表示一个人(姓名、年龄、性别、身高、体重……),怎么表示?
char name[12];unsigned int age;char sex;
想表示多个人呢?
定义多个数组?(有些搞笑了)
C语言的解决办法
struct person{ char name[12]; unsigned int age; char sex;};
struct person是一个类型
struct person students[4];
students[0].namestudents[0].agestudents[0].sex
它们都是变量,一般称为结构的成员变量
用typedef说明一种新类型名
C语言允许用typedef说明一种新类型名,使用形式如下:
typedef 类型名标识符;
例如:
typedef int INTEGER ;
该语句把一个用户命名的标识符INTEGER说明成了一个int类型的类型名。在此说明之后,可以用INTEGER来定义整型变量:
INTEGER a , b ; int a , b ;
用typedef说明一种新类型名
typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。定义新类型名的目的是增加程序的可读性。
典型试题:
以下说明新类型正确的是?
A. typedef V1 int ;
B. typedef V2 = int ;
C. typedef int V3 ;
D. typedef V4 : int ;
结构体类型
结构体类型是非常灵活的构造型数据类型。一个结构体类型可以由若干个称为成员的成分组成。不同的结构体类型可根据需要,由不同的成员组成。例如,可以定义一个日期结构体,包括年、月、日三个成员。
结构体类型
结构体类型的说明
结构体类型说明的一般形式为:
struct 结构体标识名
{ 类型名1 成员名1 ;
类型名1 成员名1 ;
……
类型名n 成员名n ;
}
结构体类型
示例:定义日期结构体类型
struct date
{ int year , month , day ; } ;