二级指针也是一个普通的指针变量,只是它里面保存的值是另外一个一级指针的地址
int p = 888; //地址 0x200 int *p1 = &p; //一级指针 存p的地址 0x200, 本身地址Ox100 int **p2 = &p1; //二级指针 存得是p1的地址 0x100, 本身地址0x300 *p2 获得一级指针的地址 int *tmp; tmp = *p2; *tmp 访问一级指针地址获取到888 **p2 直接访问二级指针获取到888二级指针的作用
1. 普通指针可以将变量通过参数"带入"函数内部,但没法将内部变量"带出"函数
2. 二级指针可以不但可以将变量通过参数函数内部,也可以将函数内部变量 “带出”到函数外部。
void new_fly(int **p1){
int p = 24; //地址: 0x888 *p1 = &p;
}
int *p1 = NULL; //地址:0x666 存的地址:0x888
new_fly(&p1)
*p1 //30



