计算机基础之变量在内存中的存储

计算机基础之变量在内存中的存储

CPU是通过三条总线与内存打交道的,分别是地址总线,控制总线和数据总线,地址总线用于寻址,控制总线用于CPU读写控制,数据总线用于传输数据。

假设地址总线有32条,那么可寻址的范围就是2的32次方,也就是2的32次方个内存单元,而每个内存单元都会有与之对应的不重复的内存地址,也就是内存编号,编号的起始索引由0开始,所以其编号最大值是2^32 - 1。

指针就是地址,指针变量就是地址变量,用于存放地址的变量,2^32 - 1= 4294967295这个数值刚好是int类型可以存放的最大数值,也就是4个字节可以表示的范围,所以说指针变量统一只占4个字节,这样的设计很合理,用十六进制表示其范围就是0x00000000 -----0xFFFFFFFF,这和它指向的对象占几个字节毫无关联。

一个int占4个字节,int i = 100;表示在内存中开辟了4个字节的空间用于存储100这个值,而100是以二进制形式存放在内存单元中的,100的二进制表示为00000000 00000000 00000000 01100100,假设被存储在编号为0x00000000到0x0000003这四个内存地址所对应的内存单元中,又假设以小端模式进行存储的,那么下图就可以具体体现100是如何被存储的

在这里插入图片描述

那么问题又来了,i所对应的内存单元地址是多少呢?是0x00000000 - 0x00000003中的哪一个呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值