
1. 结构的概念
结构、联合、数组都属于复合数据类型。
数组包含有多个元素(element),每个元素具有同一数据类型。
结构包含有多个成员(member),每个成员可以具有不同的数据类型。
数组用来表示同一类型的一批数据,结构用来表示不同类型的相关数据。
结构是一种复合(组合)数据类型,可以包含多个不同类型的数据成员(域)。
职工类型:(职工号, 姓名, 年龄, 职务, 基本工资)。
一个职工类型中的值:{"0238", "刘放", 45, "副教授", 4450.00}
2. 结构类型的定义格式
struct <结构类型名> //结构头
{ //结构体 <成员类型1> <成员名1>; <成员类型2> <成员名2>; … <成员类型n> <成员名n>; };
每个数据成员的定义用分号结束,每个数据成员的定义由类型名和成员名组成。整个结构定义的最后用一个分号结束。结构类型也有作用域。
3. 结构类型定义格式举例
(1) struct AA { //类型长度为12 int a,b,c; }; (2) struct BB { //理论长度为17 char ch; //1字节 int x,y; //2*4=8字节 double z; //8字节 }; //物理长度为sizeof(struct BB)>=20 (3) struct CC { //理论长度为24 char *cp; int a[5]; }; //物理长度为sizeof(struct CC)>=24 (4) struct DD { int *a; int *ap; int maxsize; }; (5) struct EE { //允许含有其他结构类型的成员 int d, *e; struct BB rec; //成员也可以是结构 }; (6) struct FF { //允许含有指向本身结构类型的指针成员 double data; struct FF *next; }; //理论长度为12
4.利用typedef语句定义结构类型的别名
struct node {int data; struct node *next;}; typedef struct node NodeType; //定义NodeType为struct node的别名 NodeType x,y; 等价于:struct node x,y;