一. 二级指针
C++中的指针是一个非常重要的概念,而二级指针是指向指针的指针。
-
什么是指针? 指针是一个变量,用来存储内存地址。它可以指向其他变量或对象,并通过解引用操作符 "*" 来访问所指向的值。
-
什么是二级指针? 二级指针是指向指针的指针,它存储的是指针的地址。通过二级指针可以间接访问指针所指向的值。
-
二级指针的声明和初始化 二级指针的声明和初始化与普通指针类似,只是需要多加一个 "*" 符号。例如:
int** p; // 声明一个二级指针
int* ptr; // 声明一个普通指针
int a = 10;
ptr = &a; // 普通指针指向变量a的地址
p = &ptr; // 二级指针指向指针ptr的地址
4.二级指针的使用 通过二级指针可以访问指针指向的值。例如:
int a = 10;
int* ptr = &a;
int** p = &ptr;
cout << **p << endl; // 输出10,解引用两次可以得到变量a的值
5.二级指针的动态内存分配 使用二级指针可以动态地分配多维数组或多个变量的内存。例如:
int** matrix = new int*[n]; // 动态分配一维指针数组
for (int i = 0; i < n; i++) {
matrix[i] = new int[m]; // 动态分配二维数组
}
注意在使用完二级指针后,要记得释放内存,避免内存泄漏。释放内存的方法与动态分配相反:
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
对于二级指针的运算有:
*ppa 通过对ppa中的地址进行解引用,这样找到的是pa , *ppa 其实访问的就是 pa .
int b = 20;
*ppa = &b;//等价于 pa = &b;
**ppa 先通过 *ppa 找到 pa ,然后对pa进行解引用操作:*pa ,那找到的是a.
**ppa = 30;
//等价于*pa = 30;
//等价于a = 30;
二. 指针数组
指针数组是指针还是数组? 答案:是数组。是存放指针的数组。
数组我们已经知道整形数组,字符数组。
那指针数组是怎样的?
其实一模一样只是存储的类型变成了指针罢了
int* arr3[5];
标签:二级,ppa,int,----,探究,pa,数组,指针
From: https://blog.csdn.net/tt2377/article/details/140756658