首页 > 其他 > 详细

指针大小与32位、64位系统

时间:2020-05-23 23:16:57      阅读:209      评论:0      收藏:0      [点我收藏+]

某天写程序时输出了 sizeof() 某整型指针,结果发现居然不是 4,非常惊讶,如下:

技术分享图片

下面就来解释一下为什么:

无论内存地址还是其他数据,在运算时都需要保存在寄存器之中,而结果是 8,说明了寄存器的大小是 8 个字节,即 64 bit。

我们经常说32位系统或者64位系统,实际上说的是 CPU 一次处理数据的能力。

我们可以将其理解为整个数据通路包括寄存器、处理器、总线等等都是 32 或 64 位(虽然不全是这样)。

64位计算机架构一般具有 64?位宽的整数型寄存器,而只有整数寄存器(integer register)才可存放指针值(内存数据的地址),因此指针的大小就自然是 8 个字节了。

在 32 位系统中,地址的大小是 32 bit,因此其最大寻址空间为 pow(2, 32) = 4GB,也即 32 位系统可以支持的最大内存为 4GB;而在 64 位系统中,其最大寻址空间为 pow(2, 64) 我就不算了。。。。。反正只要你的电脑卡槽够,64 位系统一般都可以支持的!但这只是理论上的~~~

指针大小与32位、64位系统

原文:https://www.cnblogs.com/HOMEofLowell/p/12944900.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!