关于指针类型占用的字节数

时间:2023-01-11 20:52:11

如果CPU是32位,内存是CPU能够直接访问的区域,CPU每次处理的数据也是32位,那CPU能够直接访问的内存大小就是2的32次方,也就是4GB,所以一般我们实用的台式机大多数的内存上线都是4GB.

 一个地址是32位,任何指针都是一个地址,所以就是占用4byte(32位),在不同的硬件平台上,指针变量占用的内存大小与其地址值的范围大小成正比。

但是实际上我们在window下利用VC或者VS编译器写代码时,有可能会出现这样的情况:比如我们的CPU硬件是64位的,操作系统也是64位的,但是由于vs建立的工程用的是win32,对应于32位的编译器,则所用到的指针类型实际上还是4个字节,即为32位;如果将VS工程配置为win64,则可以得到占用8个字节的指针,这个是可以试验测试的。

 

拓展内容:关于扩展内存条,目前一般的计算机CPU都是64位的,而计算机的内存是由操作系统来管理的,因此可以扩展内存条的最大宽度决定于计算机操作系统的位数,例如:一台CPU为64位的计算机上,安装了一个XP系统(32位),则可以扩展的最大的内存空间就是2的32次方,也就是4GB(实际上,真正可以访问的内存应该比这个小,也就3点几个G)。

如何查看计算机CPU的位数和操作系统的位数。在cmd命令窗口内输入systemInfo,如此就可以查看如下窗口:特别注意下“系统类型”、“处理器”分别对应了计算机操作系统和处理器CPU的位数,其中X86说明是32位的,X64说明是64位的。

(额额额,好桑心,传了半天图片总是显示不鸟)

 关于指针类型占用的字节数