C指向指针的指针
指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。
一个指向指针的指针变量必须如下声明,即在变量名前放置两个星号。例如,下面声明了一个指向 int 类型指针的指针:
int **var;
当一个目标值被一个指针间接指向到另一个指针时,访问这个值需要使用两个星号运算符,如下面实例所示:
#include <stdio.h>
#include <stdlib.h>
int main()
{int V;int *p1;//指向变量的指针int **p2;//指向指针的指针V = 100;p1 = &V;p2 = &p1;printf("var = %d\n", V);//输出V的值printf("*p1 = %d\n", *p1);//*p1指向V,输出V的值printf("**p2 = %d\n", **p2);//**p2指向p1,*p1再指向V,输出的还是V的值printf("p1 = %p\n", p1);//p1里存的是V的地址,输出V的地址printf("p1 = %p\n", &p1);//输出p1的地址printf("p2 = %p\n", p2);//p2里存的是p1的地址,输出的是p1的地址system("pause");
}
输出结果:
var = 100
*p1 = 100
**p2 = 100
p1 = 00A8F8C8
p1 = 00A8F8BC
p2 = 00A8F8BC