赞
踩
指针变量占用的内存空间大小根据所使用的操作系统及编译环境而定,指针类型占用的字节数是不同的。
一般而言:
16位机器的代码时,指针占2个字节。
32位机器的代码时,指针占4个字节。
64位机器的代码时,指针占8个字节。
内存的最小可寻址单位通常都是字节。也就是说一个指针地址值可对应内存中一个字节的空间。
内存会划分为一个个的内存单元(一个单元的大小:1byte),每个内存单元都有一个编号。如:
每个编号都对应一个地址。
我们的CPU一般内部只有三十二条地址总线,每一根地址线都会代表一个bit位,那么我们能寻址的范围就是三十二位,也就是四个字节,2的32次方。每一位输出为0或1,具体如下图所示:
一个指针的值就是一个32位的二进制数,32位(32个0/1比特位)对应4字节(Byte)。 所以,指针的大小实际上是由CPU的寻址位数决定。
Intel 32位处理器32位运行模式,逻辑寻址位数32,指针也就是32位,即4个字节。
Intel 32位处理器16位虚拟机运行模式,逻辑寻址位数16,指针也就是16位,即2个字节。
在32位的计算机中,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小就应该是4个字节。
在64位的计算机中,如果有64个地址线,那一个指针变量的大小是8个字节,才能放下一个地址。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。