内存地址、大端小端问题

内存地址

一个内存地址可存储 8 bit = 1 byte(字节)

32位操作系统可寻址空间为 2^32 (Byte) = 2^10 * 2^10 * 2^10 *4 = 4 GB

数据所占内存大小

C声明 字节数 字节数
有符号 32位 64位
char 1 1
short 2 2
int 4 4
long 4 8
char* 4 8
float 4 4
double 8 8

大端小端

32bit宽的16进制 0x12345678 在内存中的存放方式:

大端: 高字节存储在低地址,低字节存储在高地址

内存地址 0x4000 0x4001 0x4002 0x4003
存放内容 0x12 0x34 0x56 0x78

小端: 低字节存储在低地址,高字节存储在高地址

内存地址 0x4000 0x4001 0x4002 0x4003
存放内容 0x78 0x56 0x34 0x12

union 共用体

任何时刻共用体中只存放了一个被选中的成员

所有成员都从低地址开始存放

结构体和共用体的区别在于:
结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值