如:
int a = 10, b = 20;
int **ptr;
*ptr = a; // ptr = &a
**ptr = b; // *ptr = &b
此时的二级指针ptr可以存放两个变量的地址
ptr本身存放a变量的地址
而*ptr存放这b变量的地址
如果一个函数的目的是将主函数中的一级指针的值改变,那么就要用到二级指针
比如
int a = 10, b = 20;
void ChangeP(int **q){
*q = &b;
}
int main(){
int *p;
p = &a;
cout << "p=" << *p << endl; //10
ChangeP(&p);
cout << "P=" << *p << endl; //20
return 0;
}