C语言-结构体-015

​1结构

1.1语法

/*结构体声明(structure declaration)==模板*/
struct student
{
	char name[32];
	char sex;
	int age;
};

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字节对齐的;64位的平台 默认是8字节。

2.对于成员变量,各自在自己的自然边界上对齐

    (1)【int】:4字节,在能被4整除的地址编号上

    (2)【short】:2字节,在能被2整除的地址编号上

    (3)【char】:1字节,在能被1整除的地址编号上

整个给结构体的对齐
(1)如果成员变量中有比4字节大,此时整个结构体按照4字节对齐。(32位平台)
(2)如果成员变量中没有比4字节大,此时整个结构体按照最大的那个成员对齐。

总结:
	所以,要知道结构体大小:
		1.每个结构体成员大小(成员对齐数);
		2.每个结构体成员的对齐方式(第1个成员-结构体变量偏移量为0的地址处,其它成员-对齐到各自对齐数整数倍地址处);
		3.结构体总大小(成员最大对齐数的整数倍);
		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枚举类型的大小:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值