关于指针的理解

指针与汇编语言之间的联系

  1. 指针的本质

指针是C语言中一个比较重要的概念。要理解指针,我们先理解以下变量的概念。变量就是C语言对计算机内部某一块内存空间的命名。显然这个变量名机器本身是不认识的,也是无意义的,但是变量名可以作为一个标签,帮助我们定义和使用这块地址。举个例子:
在计算机中,如果CPU想要存储一个数据,它会怎么实现呢?看下图:这里写图片描述

DB:数据总线 AB:地址总线 CB:控制总线

假设该存储器拥有10个字节的内存单元,那么它可以寻址10个存储空间。如果我要在内存地址为06的地址里面存储100这个数,那么首先,计算机会通过地址总线锁定60这个地址,然后将100这个数送至数据总线,最后通过控制总线将数据进行锁存。代码实现:
C语言:

int a=100

汇编:

MOV [06],100

也就是说a其实相当于一个标签,用来代替地址06,作用是便于我们记忆,使用,区分。而&a就相当于把这个标签所对应的地址取出来(06)。

指针在C语言里的理解是存储地址的变量,那么其实它就是一个变量,只是存储的位置跟存储的内容比较特殊,假设上图中我们定义10地址为指针变量存储区,那么我们可以把a的地址06存储到里面。代码:

int *p=&a

定义了一个指针变量P,P的地址是10,P里存储的是地址06,这个06地址里面存储的数据时100。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值