数值在计算机中的存储方式

指针在64位中占8个字节,在32位中占4个字节

char *c[5]:指针数组,存放了5个指针的数组,占40个字节。

char (*c) [5]:数组指针,指向一个存放五个元素的数组指针,占8个字节。

结构体的内存对齐:以最大的数据类型为单位进行字节对齐。如果是结构体的嵌套,就将结构体展开,看最大的数据类型。

例:C

p为指针,占8个字节。*p为结构体,占32字节。p->a占1个字节,p->e占8个字节。

int c:16。说明c占16位,2个字节。

数值在计算机内的存储方式:

大端模式:将数值的高位存在低地址中

小端模式:将数值的高位存在高地址中

例:0X12345678

低《----------------------------》高

大端:0X12 0X34 0X56 0X78

小端:0X78 0X56 0X34 0X12 由于是栈存储,所以高位存储在低地址。

共用体的内存对齐:必须能放下最大的变量,该内存值是所有数据类型的整数倍,内存取其中最大变量的值。

下图结构体中嵌套共用体时:内存大小为16字节

 判断计算机为大端小端:

typedef和define区别:

typedef:数据类型替换

define:单纯代码替换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值