复习:
结构:结构是一种由程序员自己设计的一种数据类型,它用于描述一个事物的各项数据,由若干个基础的数据类型组成。
设计:
struct 结构体名
{
类型 成员名;
…
};
定义结构变量:
struct 结构体名 结构变量名;
注意:也可以在设计时直接定义结构变量。
访问成员:
结构变量名.成员名
结构指针->成员名
初始化:
顺序:struct 结构体名 结构变量名 = {v1,v2,v3,…};
指定:struct 结构体名 结构变量名 = {.成员名=v1,…};
类型重定义:
在C语言中 struct、union、enum 的关键字是不能省略的。
typedef struct 结构体名 结构体名;
typedef struct 结构体名
{
类型 成员名;
…
}结构体名;
计算字节数:
成员的顺序不同会影响结构体的总字节数,成员的位置如果安全合理可以大大节约内存。
对齐:假定从0地址开始,每个成员使用的内存起始编号必须能被它的字节数整数,如果不可以则填充一些闲置的字节。
补齐:结构体的总字节数必须是它最大成员的整数倍,如果不是则补一些闲置的字节。
注意:计算对齐和补齐时,在Linux32系统下,超过4字节按4字节计算。
联合:所有成员共用一块内存,也就是都从同一个内存起始位置开始使用,一个成员的会发生变化,其它成员的值也随之变化,语法