c语言二级指针的作用,为什么要使用二级指针?

概念提到指针,我们都知道指针是用来存储一个变量的地址。所以,当我们定义了一个指向指针的指针的时候(pointer to pointer),我们也称之为二级指针,那针对于这个二级指针来说,第一级指针存放的是指向的变量的地址,第二级指针存放的是第一级指针的地址。可以用下面这张图表示他们之间的关系。 上图所表达的意思也就是,一级指针变量 ptr1 存放的是 var 变量的地址,二级指针变量 ptr2 存...
摘要由CSDN通过智能技术生成

概念

提到指针,我们都知道指针是用来存储一个变量的地址。所以,当我们定义了一个指向指针的指针的时候(pointer to pointer),我们也称之为二级指针,那针对于这个二级指针来说,第一级指针存放的是指向的变量的地址,第二级指针存放的是第一级指针的地址。可以用下面这张图表示他们之间的关系。

e61e9fb47810ae3a6b9627d88c7bde58.png

上图所表达的意思也就是,一级指针变量 ptr1 存放的是 var 变量的地址,二级指针变量 ptr2 存放的是一级指针变量的地址。这也就是关于二级指针的相关概念。

一级指针与二级指针关系示例

#include

int main(void)

{

int a = 10;

int *p = &a;

int **q = &p;

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

printf("&a = %p\n",&a);

printf("p = %p\n",p);

printf("&p = %p\n",&p);

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

printf("q = %p\n",q);

printf("&q = %p\n",&q);

printf("*q = %p\n",*q);

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

}

下图是代码运行的结果:

fb3bf138fb6f1d90d44b81bad664cdb2.png

结果也很明显了,一级指针变量 p 存放的是变量 a 的地址,二级指针变量 q 存放的是一级指针变量 p 的地址,所以根据以上结果也能得出下面的等式:

q = &p;

*q = p = &a;

**q = *p = a;

在了解了上述一级指针和二级指针的一个关系之后,我们再来看另外一个例子:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值