结构体

概念

结构体将一组来自不同类型的数据组合在一起构成复合类型,其中每个数据都是结构体的成员。

struct st{
	char c;
	int i;
};
st s;

访问

  • 结构体类型的变量通过.来访问;
  • 结构体类型的指针通过->来访问;
st* ps = &s;//ps为结构体类型的指针
s.c = 'a';
s.i = 2;
ps->i;//通过结构体类型指针来引用成员i

内存占用

编译器为了提高访问效率,采用边界对齐技术,计算机指令是以机器指令为单位在内存中存取数据的。以32位计算机为例,一个机器字是4字节,存储数据是从4的倍数的内存地址开始的。因此,gcc编译器在存储结构体变量st时,会在第一个4倍数内存地址位置保存st.c,然后空出后面的3个字节,从下一个4倍数内存地址开始存储st.i。因此,用sizeof计算得到的数就是8而不是5。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值