结构体大小计算方法coming

计算结构体大小的方法:
我们在初次遇到这个问题时常常会想不就是把各个成员变量大小加起来吗,多么完美纯粹,但是事实不是那样的哈,
真正的规则是:
1.结构体成员的偏移量必须是结构体成员大小的整数倍(0被认为是任何整数的整数倍)
2.结构体大小必须是所有成员变量大小的整数倍 (数组和结构体除外)
A:--------------------------------------------------------------------------------------------------------------
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
char占1个字节。Int占4个字节,
为了便于理解,用如下方式来表示:
(1)【】【】【】【】【】【】我们可能是这么认为的.
(2)【】【】【】【】【】【】【】【】【】(1)不对的原因是忽略了偏移量规则,那这样总该对了吧?
(3)【】【】【】【】【】【】【】【】【】【】【】【】(2)不对的原因是忽略了结构体大小必须是所有成员变量的整数倍9不是1和4的整数倍,1和4的整数倍中比9大的最小的数是12。
B:-------------------------------------------------------------------------------------------------------------
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原理同A,特别加上第二条中数组除外的规则。
如果只是在结构体里声明了结构体,那这个结构体不会占内存的。
如果定义了一个结构体变量那也不要忘记规则第二条。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值