C语言 指针的指针

指向指针的指针是多个间接的形式,或指针链,通常,指针包含变量的地址,当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,第二个指针指向包含实际值的位置,如下所示。
指针的指针

作为指针的变量必须声明为指针。这是通过在其名称前放置一个额外的星号来完成的。例如,以下声明了一个指向Int-类型的指针

int **var;

当目标值由指向指针的指针间接指向时,访问该值需要应用两次星号**运算符,如下面的示例中所示

#include <stdio.h>

int main () {

   int  var;
   int  *ptr;
   int  **pptr;

   var=3000;

   /* take the address of var */
   ptr=&var;

   /* take the address of ptr using address of operator & */
   pptr=&ptr;

   /* take the value using pptr */
   printf("Value of var=%d\n", var );
   printf("Value available at *ptr=%d\n", *ptr );
   printf("Value available at **pptr=%d\n", **pptr);

   return 0;
}

编译并执行上述代码时,将生成以下结果-

Value of var=3000
Value available at *ptr=3000
Value available at **pptr=3000