一、结构体类型的声明
结构体声明的语法:struct tag { member - list; } variable - list;
member - list是成员名,variable - list是创建的变量名。比如创建一个描述学生的结构体:
struct Stu { char name[20]; int age; char sex[5]; char id[20]; };
1.1 一般结构体声明
1.2 结构的特殊声明(匿名)
匿名结构体:无类型名,直接定义变量 x
struct { int a; char b; float c; } x;
1.3 结构体的自引用
在结构中包含一个类型为该结构本身的成员是否可以呢?比如定义一个链表的节点:
struct Node { int data; struct Node next; };
二、结构体变量的创建和初始化
结构体变量的创建可以在声明的时候就创建好;也可以单独创建。结构体的初始化,如果在结构体声明的时候就创建了变量,那么可以顺带初始化,可以用到.结构体成员操作符。
2.1 结构体变量的创建
2.2 结构体的初始化
三、结构成员访问操作符
结构体成员访问操作符有两个: . 和 ->
四、结构体内存对齐
4.1 对齐规则
4.2 代码练习:判断结构体大小
4.3 为什么存在内存对齐
4.4 修改默认对齐数
五、结构体传参
结构体传参分为两种:传结构体变量和传结构体变量的地址。
六、结构体实现位段
6.1 什么是位段
6.2 位段的内存分配
6.3 位段使用的注意事项
6.4 位段的跨平台问题
6.5 位段的使用
位段在数据报等场景中非常有用。
感谢大家的观看,新人求互三,关注我必回关!下章见!
