C语言允许用户自己建立由不同类型数据组成的组合类型的数据结构,称为结构体(structure)。在其他高级语言中成为"记录"(record)。声明结构体类型的一般形式为:
可以用typedef指定新的类型名来代替已有的类型名。声明一个新的类型名称的方法归纳如下:
例如:
struct 结构体名称{ 成员列表 }
定义结构体有以下3种方式:
1.先声明结构体,在定义结构变量//声明结构体类型Student struct Student { int num; char name[20]; char sex; int age; }; //定义Student类型的变量 struct Student stu1,stu2;2.在声明结构体的同时定义变量
//声明结构体类型Student的同时定义struct Student类型的变量stu1,stu2 struct Student { int num; char name[20]; char sex; int age; }stu1,stu2;3.不指定类型名而直接定义结构体变量
//不指定类型名称直接定义结构体变量stu1,stu2 struct { int num; char name[20]; char sex; int age; }stu1,stu2;如果指针p指向一个结构体变量stu,以下三种方法等价
- stu.成员名(如:stu.num)
- (*p).成员名(如:(*p).num)
- p->成员名(如:p->num)
可以用typedef指定新的类型名来代替已有的类型名。声明一个新的类型名称的方法归纳如下:
- 先按定义变量的方法写出定义体(如:int i;)
- 将变量名换成新类型名(例如:将i换成Count)
- 在最前面加typedef(例如:typedef int Count)
- 然后可以用新类型名去定义变量
例如:
//利用typedef定义新类型 typedef struct SqList { int r[10]; int length; }SqList,*SqList; //在用新类型定义变量 SqList L1,L2