结构体
用结构体封装一些属性,形成一个新的类型。
struct 类型名_{ }
列如: struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
int main ()
{
Books_title={};
}
结构体本身不开辟空间,结构体变量要开辟空间
结构体指针要用指向("->")来调用变量。
结构体变量开辟空间规则:
1、首地址必须是结构体中最大数据类型所占字节个数的整数倍。
2、偏移量为下一个数据类型的字节个数的整数倍。
3、结构体所占字节个数也为最大数据类型的字节个数的整数倍。
## 联合体
特点:对同一块内存采用不同的类型进行解释,并且属性共享一块内存。
定义联合体:union +联合体名{};
对于内嵌结构体如果内嵌的结构体为哑元,则联合体变量属性包括结构体,并且结构体作为整体与联合体其余数据类型共享内存。
柔性数组: