c语言指针

本文为学习记录,如有理解错误,还请指正。

一般指针,指针变量,地址统称为指针。

我们使用地图来比喻指针,假设一个没有任何标记的地图就是一个野指针,一个有明确标记(每个地图上只能同时有一个标记)的地图就是一个有指向的指针,一个地图边界之外的标记为空指针(不指向地图内的任何地址)。

野指针就像是一个不给你任何标记的地图,你的目的地可以是地图上的任何地方,而且你也不知道目的地在哪个方向。

一个有明确指向的指针就像是给你标记好目的地的地图,你明确知道要往什么地方走才能到达目的地,取得对应的东西。

一个空地图可以通过添加标记(指针赋值)来确定一个唯一的目的地,同时也可以修改目的地。

int* p;      //一个没有明确标记的地图
int a=10;
p=&a;       //在地图上标记出a的地址
*p;        //跟着地图上的地址找到目标
p=NULL;    //将地址上的标记移到地图之外

二级指针

二级指针就像一个地图标记着另一个地图的地址。假设小明手里有一张寻宝图,小明高高兴兴的去到寻宝图上标记的位置寻找宝藏,挖出来一看,结果又是一个标着宝藏地址地图,小明又去到这个地图上标记的位置,终于找到了宝藏。

这里的第一张地图就是一级指针,第二张地图就是二级指针。每次去挖出宝藏的过程就是解引用(*);

int c=20;
int*p=&c
int**p2=&p;

*p2;//跟随第一张地图挖出第二张地图
*(*p2)//跟随第二张地图挖出宝藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值