学历课程
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;