#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
void test01(){
int var =10;
int *ptr = &var;
int **pptr = &ptr; //二级指针就是 存储(指向)一级指针地址 的指针
//解引用就是输出当前指针所指向的地址中存储的值
cout << var << endl; //10
cout << *ptr << endl; //一级指针解引用就是得到存储(指向)地址中存储的数据
cout << *pptr << endl; //二级指针的一层解引用就是得到存储(指向)的地址中存储的数据也就是&var
cout << &var << endl; //var的地址
cout << &ptr << endl; //一级指针本身的的地址
cout << pptr << endl; //二级指针的存储(指向)内容就是一级指针的地址
cout << &pptr << endl; //这个是二级指针本身的地址
cout << **pptr << endl; //这个是解引用两次,第一次是得到二级指针所指向的地址中的数据(也就是var的地址),第二次解引用就是得到解析一层指针所指向地址中的数据(也就是var的值)
int var01 = 20;
int **pp = new int*;
*pp=&var01;
cout << **pp << endl;
cout << *pp << endl;
}
int main(){
test01();
}
二级指针-详解
于 2024-09-08 16:44:50 首次发布