在C++中,二级指针(double pointer)或称为指针的指针,是一个指向指针的指针。这意味着二级指针存储的是一个指针的地址,而这个指针又指向另一个地址。基本定义二级指针的基本定义如下:
int* ptr; // 这是一个一级指针,指向一个int类型的变量
int** ptr_ptr; // 这是一个二级指针,指向一个int类型的指针
使用场景
-
动态二维数组:使用二级指针可以方便地创建和操作动态二维数组。
int** arr = new int*[rows]; for (int i = 0; i < rows; ++i) { arr[i] = new int[cols]; } // 使用完毕后,记得释放内存 for (int i = 0; i < rows; ++i) { delete[] arr[i]; } delete[] arr;
函数参数:当你想在函数中修改一个指针的地址时,你需要传递这个指针的地址,也就是二级指针
void changePtr(int** ptr) { *ptr = new int(10); // 改变ptr所指向的指针的值 } int* myPtr = nullptr; changePtr(&myPtr); // 使用二级指针传递myPtr的地址