1.结构体的定义和使用
1.1.结构体的定义
1 | // 第一种方式 |
1.2.结构体的使用
1 | struct Worker{ // 定义一个结构体, 相当于 java 的 class |
打印结果:
1 | name = Eastrise, age = 25, salary = 1000.000000 |
2.结构体指针和动态内存开辟
2.1.通过指针取操作数据
1 | int main(){ |
打印结果:
1 | name = Jack, age = 24 |
2.2.动态开辟结构体内存
1 | struct Worker{ // 定义一个结构体, 相当于 java 的 class |
打印结果:
1 | name = Jamin, age = 26 |
结构体的数组
1 | struct Worker{ // 定义一个结构体, 相当于 java 的 class |
打印结果
1 | name = Eastrise9,age = 9 |
3.结构体大小计算(字节对齐)
计算的规则:
- 按照最大的字节去计算
- 算得时候只会按照基本数据类型去算
- 首先会把所有字节数加起来, 是否能够整除最大属性(有其它结构体就按照其它结构体中所有的基本类型数据总和跟本身最大的基本数据类型比较大小)的字节数,如果不够会往上累加,一直加到能整除的位置
1 | struct Worker{ // 定义一个结构体, 相当于 java 的 class |
打印结果:
1 | 24 |
4.结构体和结构体指针取别名
关键词:typedef
typedef Worker_ Worker_;
:好处初始化时可以不用带 struct 关键字了
1 | typedef Worker_ Worker_; |
打印结果:
1 | ,--> 0,---> 0.000000 |
5.联合体的定义和使用
联合体(共用体) 是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。
联合体因为是在相同的内存位置存储,所以下面代码中只能存在一个,要么是 age ,要么是 name
, 后定义的才存在
1 | union Person |
打印结果:
1 | name = ,age = 25 |
6. 联合体大小计算
不用累加,取的最大值,最终是否够基本数据类型整除
7.枚举的定义和使用
枚举有点类似于 int
,没有指定的依照前面的数值累加
1 | enum CommentType |