二级指针也是一个普通的指针变量,只是它里面保存的值是另外一个一级指针的地址
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
int main()
{
int cabinet1 = 12; //柜子1里存放12;
int *cabinet2 = &cabinet1; //柜子2里保存柜子1的地址
int **p = &cabinet2;
cout << **p << endl;
int *tmp;
tmp = *p;
cout << *tmp << endl;
system("pause");
return 0;
}
用途:
1. 普通指针可以将变量通过参数“带入”函数内部,但没办法将内部变量“带出”函数
2. 二级指针可以不但可以将变量通过参数函数内部,也可以将函数内部变量 “带出”到函 数外部
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
void admire(int **p)
{
int i = 18;
*p = &i;
}
int main()
{
int *p = nullptr;
admire(&p);
cout << "i的大小为:" << *p << endl;
system("pause");
return 0;
}