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


    如果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位的。

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

     

  • 相关阅读:
    tinyxml优化之一
    vs下C++内存泄露检测
    Cocos2d-x项目移植到WP8系列之九:使用自定义shader
    [leetcode 双周赛 11] 1228 等差数列中缺失的数字
    [leetcode 周赛 158] 1224 最大相等频率
    [leetcode 周赛 158] 1223 掷骰子模拟
    [leetcode 周赛 158] 1222 可以攻击国王的皇后
    [leetcode 周赛 158] 1221 分割平衡字符串
    [leetcode 周赛 157] 1220 统计元音字母序列的数目
    [leetcode 周赛 157] 1219 黄金矿工
  • 原文地址:https://www.cnblogs.com/jiayouwyhit/p/3241857.html
Copyright © 2020-2023  润新知