C语言-结构体-015
1.结构
1.1语法:
1.2语义:
1.3结构体形式:
1.形式1:
2.形式2:
3.形式3:
1.4 结构体变量初始化:
1.5结构体成员的访问
1.5.1通过结构体变量名访问成员
【变量名 . 成员】:
1.5.2通过指向结构体的指针访问成员
【指针变量 -> 成员】:
1.4结构体大小:
1.4.1结构体对齐规则:
1.在32位的平台上,默认都是按4字节对齐的。
2.对于成员变量,各自在自己的自然边界上对齐
(1)【int】:4字节,在能被4整除的地址编号上
(2)【short】:2字节,在能被2整除的地址编号上
(3)【char】:1字节,在能被1整除的地址编号上
整个给结构体的对齐
3.如果成员变量中有比4字节大,此时整个结构体按照4字节对齐。(32位平台)
4.如果成员变量中没有比4字节大,此时整个结构体按照最大的那个成员对齐。
2.联合(共用体)
2.1语法:
2.2语义:
初始化:只能给一个值,默认是给到第一个成员变量的。
共用体成员变量辅助:共用体用的数据最终存储的应该是最后依次给到的值。但是只能影响到自己数据类型对应的空间中的数据。
2.3共用体形式:
2.4共用体变量初始化:
2.5共用体成员的访问:
2.6共用体大小:
2.7共用体的应用:
共用体类型可以做
(1)定义变量
(2)定义数组
(3)定义指针
(4)做函数的参数返回值类型
2.8共用体的其它应用
2.8.1系统数据存储模式(大小端判断)
3.枚举
3.1语法:
3.2语义:
3.3枚举形式:
3.4枚举变量初始化:
3.5枚举成员访问:
注意:
(1)枚举:提高了代码的可读性
(2)本质上是int整型
(3)不足:因为枚举类型 — 本质上是个整型类型, 所以枚举类型的变量的值,并不能真正限定在指定的哪些值范围中 。
(4)可以做函数形参和返回值,定义数组也可以,本质上就是整形数据。
3.6枚举类型的大小: