参考链接:https://www.runoob.com/cprogramming/c-structures.html
例如数组可以用来存储多个相同数据类型的数据项,结构体也是一种数据类型,可以用来储存多个不同数据类型的数据项。
结构体内部可以包含其他的结构体,还可以包含指向自己结构类型的指针,这样是为了实现其他复杂的数据结构 如果两个结构体互相包含,则需要先对其中的一个进行不完整声明(为啥要声明,因为使用之前就是要声明)
初始化
struct Book{ int i; float f; }book1={1234,"从入门到放弃"}; //使用**成员访问符`.`**进行访问 printf("%d",book1.i);结构体作为函数的参数和其他类型或者指针的方式一样,只是需要增加一个struct关键字 和标签名
//函数声明 void funcname(struct Book book);**struct books *ptr_name 前面的两个可能是表示类的继承** 与指向其他类型的指针声明类似,只是需要增加一个struct关键字和标签名
//函数声明 struct Book *ptrname访问的时候使用->运算符代替成员运算符.
位域与结构体类似
struct 位域结构名 { 位域列表 }; 位域列表的形式为 类型说明符 位域名: 位域长度
struct k{ int a:1; int :2; /* 该 2 位不能使用 *///因为是无名域位,用于调整位置 int b:3; int c:2; };