指针地址的大小

最近从新学习了一遍C语言,突然有想写博客的冲动,那就从今天开始行动吧,上来就直接来一个的,那就是大家又爱又恨的指针,废话不多说,开整。

首先来说一下所谓的32位系统和64位系统吧,因为这个和我们即将学习的指针有一定关系

所谓32位系统,就是电脑CPU一次能处理32个电信号的能力,64位系统就是CPU一次性能够处理64位电信号的能力,在C语言中,指针地址的大小是和32位系统还是64位系统是息息相关的,在32位平台上,指针的大小为4个字节,在64位平台上,指针地址的大小位8个字节,这里强电一点,是指针地址的大小,不是指针类型的大小,先上图,再解释为什么不同平台指针地址的大小不一样

下图中定义了不同类型的指针,但是打印指针地址的大小时都是4个字节,因为我们选择的编译器位32位平台

 当我们将编译器的平台设置为64位平台时,指针地址的大小为8个字节

 为什么不同平台指针地址的大小会不同呢?这里我们不得不回到之前的内容,CPU一次处理信号的能力,众所周知,对于电脑的CPU来说,对外接的感知无非就是两点,高电平,低电平,为了将外部的输入让CPU识别到,我们只能将复杂的事情简单化,全部转化为CPU能识别的的电信号,这就有了二进制的出现,因为二进制就两个数字0和1,正好对应了高电平与低电平,从这一点我们也能得出一个结论,在电脑的中,最小的储存单位就是储存一个0或者一个1,我们称之为bit,科学家们又能将8个bit规定为一个字节,因为32位平台的CPU一次能处理32个电信号,为4个字节,64位平台的CPU一次能处理64个电信号,为8字节,而所谓指针,就是用来操作计算机中存储地址的一个特殊存在,所谓指针就是地址,地址就是指针,所以在不同的平台下,指针地址的大小是不同的

 把上图中16*16的方格表示为计算机中的存储单元,每个圈出来的范围为对应大小在存储中占用的大小

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值