C语言 ——— 一级指针 & 二级指针

目录

一级指针

 二级指针 

通过二级指针打印原数据 


一级指针

一级指针就是存放变量的指针

代码演示:

#include<stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;

	return 0;
}

pa就是一级指针变量,是变量就会有地址,因为变量都是在内存中开辟空间的

通过监视窗口查看 a的地址 和 pa指针变量 和 pa指针变量的地址:

由以上监视可以看出pa存放的是a的地址,取地址pa取出的是pa这个指针变量的地址

内存示意图: 


 二级指针 

那么一级指针变量该如何存储呢?那么就需要二级指针变量来存储一级指针变量的地址

代码演示:

#include<stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;    //一级指针变量

	int** ppa = &pa; //二级指针变量

	return 0;
}

ppa就是二级指针变量,二级指针变量就是用来存放一级指针变量的地址的

监视窗口查看各个变量:

可以看出 二级指针变量ppa 存放的内容就是 一级指针变量pa 的地址  

对于一级指针变量pa类型 int* 的理解:

* 是在说明pa是指针变量,int是在说明 pa 指向的对象的类型是int

对于二级指针变量ppa类型 int** 的理解: 

把int**拆开理解:int* 是在说明 ppa 指向的是int*类型的变量,第二个 * 是在说明 ppa 是指针变量

内存示意图:


通过二级指针打印原数据 

代码演示:

#include<stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;    //一级指针变量

	int** ppa = &pa; //二级指针变量

	printf("a = %d\n", **ppa);

	return 0;
}

代码解析:

**ppa分解为 * 和 *ppa

*ppa: 二级指针变量解引用一次,找到的是一级指针变量pa,所以可以替换原式 *ppa 等价于 pa

**ppa:由 *ppa替换为 pa后:*pa:一级指针变量解引用,找到的就是原数据 a

最后以%d的形式打印,结果为10

代码验证:

小结: 二级指针变量解引用一次就能找到一级指针变量,一级指针变量再解引用就能找到所指向的变量

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值