初识C语言九

(13)指针

要想了解指针,就要先了解内存的概念。

内存:

内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中运行的

所以为了有效的使用内存,就把内存划分一个个小的内存单元,每个内存单元的大小是1个字节

为了能够有效的访问内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

生活中,我们通过地址来找到空间(房间)目标。

内存也是如此,把一整块内存划分为一个小的内存单元后,要进行编号。

思考:1、如何产生地址?

电脑中的32位、64位指有32/64根地址线/数据线(即电线),通电后有电信号,再转换数字信号。

这时,32根地址线上产生的所有电信号可能性是从全0到全1的32个二进制位可能性是2的32次方

而这些二进制序列,如果通过地址线可以很好产生的话,那把这样的二进制序列作为每一个内存单元的编号,那这样就可以产生2的32次方个内存编号(编号:可以把二进制转十进制)

每个编号对应内存块的话,这样就是内存块编号,那对应的语法就是编号为内存块的地址。

2、内存单元是多大?

首先,要知道内存的单位——

如果一个空间是一个比特位,那位2的32次方种编号对应的内存块大小从bit转换为gb的话为0.5gb。(关于转换可以用计算器改为编程模式来计算)

这时,会发现2的32次方个地址,只能访问0.5gb,而当前的内存有4GB、6GB等

即使在32位计算机下,0.5GB也访问不了

这时,一个bit不太合适。

那如果换成字节的话,这时0.5×8=4GB,就比较合适了

设计内存的时候,如果要把内存划分的话,所划分的内存块的大小是一个字节为单位的。(即一个空间为一个字节)

这时,我们再写int时,向内存申请4个字节,而4个字节都有对应的编号。

如:

int a=10;

这里申请4个字节,可这4个字节又是放哪呢?想看地址,又该怎么拿呢?

(这时,联想到之前“&”取地址符号)

如:&a——取出a的地址

i

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值