int ** 的理解

int ** 的理解

int **p;
int * p, 比较容易理解,就是定义一个指向int类型的指针。那么这里的int **p是什么呢?
对于这种特殊形式,首先可以确定的是p是一个指针,因为p前面不但有 * 号而且还有两个 * 号,所以肯定是指针。
那么两个 * 号又是什么意思呢?
把int **p分解为以下形式,和int *p比较,就会看的比较清楚

int           * p; //指针p指向 int类型
int *         * p;//指针p指向int * 类型

  
  • 1
  • 2

其实上面的两种形式区别就在于:指针指向的内容的类型不同,一个指向int类型一个指向int * 类型

int a = 10;
int *q;
int **p;

q = &a;//q 指向 a
p =&q; //p 指向q, q是一个int类型指针

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

该程序段执行完毕后内存映像如下:

在这里插入图片描述
————————————————
版权声明:本文为CSDN博主「hw2169」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hw2169/article/details/103792090

posted @ 2022-11-21 18:54  TwcatL_tree  阅读(2)  评论(0编辑  收藏  举报