一个指针占几个字节,原理是什么呢

一个指针占几个字节,原理是什么呢

  • 一个指针在32位计算机上占4个字节;
  • 一个指针在64位计算机上占8个字节;

原理:

  • 指针就是地址,地址就是指针,而地址是内存单元的编号。所以一个指针占几个字节,等于是一个地址的内存单元编号有多长。
  • 在计算机中,CPU只能直接跟内存进行数据交换,而CPU是通过地址总线、数据总线、控制总线三条线与内存进行数据传输与操作。

问:假如我们想通过CPU在内存中读取一个数字3,是怎样一个操作呢?

  • 首先,CPU通过地址总线,在内存中找到数字3的地址;
  • 然后,通过控制总线知道该操作是读还是写;
  • 最后,通过数据总线,把数字3传输到CPU中。
  • 地址总线的宽度决定了CPU的寻址能力;
  • 控制总线决定了CPU对其他控件的控制能力以及控制方式。
  • 数据总线的宽度决定了CPU单次数据传输的传送量,也就是数据传输速度。

我们平常说的计算机是64位,32位,指的是计算机CPU中通用寄存器一次性处理、传输、暂时储存的信息的最大长度。即CPU在单元时间内(同一时间)能一次处理的二进制数的位数。

  • 假如,某计算机的地址总线是32位,那么它一次可以处理的信息是32条,每一条地址总线有0或1两种可能,那么32根地址总线一共有232种可能,也就是其描述的地址空间为0-(232-1)。
  • 我们一般需要32个0或1的组合就可以找到内存中所有的地址,而32个0或1的组合就是32位,也就是4个字节的大小(一个字节8位)。因此我们只需要4个字节就可以找到所有的数据。所以在32位计算机中,指针占4个字节,64位计算机中,指针占8个字节。
  • 地址值占几个字节,指针变量就占几个字节。
  • 计算机能够处理的最小单元是字节不是位。位是由软件通过运算符操作的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值