关于内存的一点想法

  正如我们所看到的那样,再32位地址总线的环境下,我们所打印出来的地址已经能说明很多的问题了。Of course,就是函数以及变量在内存中的存储的相对的位置,应该是我所画出来的这样:

OK,这是根据VS编译器的结果所反向推导的,但是问题却出来了。在用64位地址总线的时候,得到的结果却令人奇怪。

As we can see,我发现此时Add函数的地址要比main()函数高,而此时b的地址比a地址高了,两个都反过来了。为什么会这样呢?据我了解的是,地址就是像房间号一样,也可以理解为可能性,比如32位地址总线,对于每一根线都有0和1两种可能,32位就有2^32可能性,将每一种可能性转化为一个地址,正好像二进制,因此再把二进制转化为16进制。但是为什么地址的相对大小会发生变化呢?这一点我百思不得其解,有没有哪位高手帮我解答一下,万分感谢,当然由于本人水平实在偏低,可能对于一些概念的理解也有偏差甚至错误,麻烦各位批评指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值