C语言二级指针

一、

1. 指针的作用

内存的存储区就像一池湖水,数据就像池水里面的鱼,如果不用内存寻址的方式,那么当你找某个特定数据的时候,就相当于在一池湖水里找某一条叫做“张三”的鱼一样–你得一条一条捞出来辨认。

如果有内存寻址,就像把一池湖水用渔网分成若干网格,每个网格里面放一两条鱼并且把每个网格都编号(编号和鱼的对应关系假如你用一个小本子记起来),这样当你想找某条叫“张三“的鱼时,你只要打开小本子(指针地址)找相应的网格就可以了。

那么,存储数据的内存地址(有点拗口)或者说是上面例子里面记载编号和鱼的对应关系的小本子就叫指针。

2.二级指针

因为任何一个变量值(包括指针地址)最后都是要放入到内存中去的,回到之前举的“池子里的鱼”那个例子,所谓的二级指针就是存放那个写着网格和编号的小本子的位置信息(比如你把这个本子放到某个抽屉里了,那么二级指针记载的内容就是“这个抽屉的位置”)

3. 为什么要用二级指针

当需要找到本子里记录的一条鱼就用一级指针
当需要将本子里的一堆鱼并卖出去就需要用二级指针,就是抽屉,
再通过抽屉到本子,就可以找到这一堆鱼

uint8_t fishes[10];
void Get_fishes()
{
	uint8_t* salefishes = NULL;
	uint8_t* p_Drawer = NULL;
	Get_fishesDrawer(&p_Drawer);
	if (p_Drawer != NULL)
	{
		memcpy(salefishes,p_Drawer,10);
	}
	
}

void Get_fishesDrawer(uint8_t **p_Drawer)
{	
	// get notebook
	*p_Drawer = &fishes[0];
}

参考:https://blog.csdn.net/luciferbeing/article/details/46874865

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值