变量内存分析

变量内存分析

本小节知识点

1.字节和地址

  • 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。

  • 内存以“字节为单位”


2.变量的存储

  • 一个变量所占用的存储空间,不仅跟变量类型有关,而且还跟编译器环境有关系。同一种类型的变量,在不同编译器环境下所占用的存储空间又是不一样的

    • 所占用字节数跟类型有关,也跟编译器环境有关

    • 内存由大到小寻址

    • 变量存储单元的第一个字节的地址就是该变量的地址

    • 任何变量在内存中都是以二进制的形式存储。一个负数的二进制形式,其实就是对它的正数的二进制形式进行取反后再+1。(取反的意思就是0变1、1变0)

类型 16位编译器 32位编译器 64位编译器
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8
short 2 2 2
long 4 4 8
long long 8 8 8
void* 2 4 8

3.取值范围

  • 不同数据类型所占的存储空间是不一样的,字节长度不一样,包含的二进制位数就不一样,能表示的数据范围也就不一样

  • 如果赋值的时候超出了变量的取值范围,那么将损失精度,得到“垃圾数据”(“垃圾数据”就是指并非我们想要的数据)

关键字 所占字节数 表示范围
int 4 -2(31) ~ 2(31)-1
signed short int 2 -2(15) ~ 2(15)-1
signed long int 4 -2(31) ~ 2(31)-1
unsigned int 4 0 ~ 2(32)-1
unsigned short int 2 0 ~ 2(16)-1
unsigned long int 4 0 ~ 2(32)-1
float 4 绝对值E-37 ~ E+38
double 8 绝对值E-307 ~ E+308
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值