### 二级指针
用来记录普通类型存储区地址的指针叫一级指针。
二级指针用来记录一级指针的地址。
声明二级指针的时候需要使用两个*。
#include <stdio.h>
int main(){
int num = 0;
int *p_num = #
int **pp_num = &p_num;
**pp_num = 10;
printf("num = %d\n", num);
*pp_num = NULL;
printf("p_num = %p\n", p_num);
return 0;
}
二级指针前使用\*\*可以表示捆绑的普通类型的存储区。
二级指针前使用*可以表示捆绑的一级指针存储区。
二级指针可以用来代表指针数组,但是不能用来代表二维数组。
#include <stdio.h>
int main(int argc, char **argv){
int num = 0;
for (num = 0;num <= argc - 1;num++){
printf("%s\n", *(argv + num));
}
return 0;
}
无类型指针有可能实际代表的是一个二级指针。
被调用函数可以通过二级指针形式参数,向调用函数传递一个地址数据。
#include <stdio.h>
void set_null(int **pp_num){
*pp_num = NULL;
}
int main(){
int num = 0;
int *p_num = #
set_null(&p_num);
printf("p_num = %p\n", p_num);
return 0;
}