二级指针
二级指针也是一个普通的指针变量,只是它里面保存的值是另外一个一级指针的地址
假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示:
二级指针的定义:
int a = 666;
int *p1 = &a;
int **p2 = &p1;
指针变量也是一种变量,也会占用存储空间,也可以使用&获取它的地址。
C语言不限制指针的级数,每增加一级指针,在定义指针变量时就得增加一个星号*。
p1 是一级指针,指向普通类型的数据,定义时有一个*;
p2 是二级指针,指向一级指针 p1,定义时有两个*。
定义一个三级指针 p3,让它指向 p2
int ***p3 = &p2;
四级指针也是类似的道理:
int ****p4 = &p3;