是的,C++中的双重指针可以用于指向指针数组。
双重指针是指一个指针变量指向另一个指针变量,而后者又指向一个指针数组。这种结构通常用于处理二维数组或者指针数组。
下面是一个简单的示例代码,演示了如何使用双重指针来指向指针数组:
int main() {
int *ptr = new int[10]; // 创建一个int类型的指针数组
int **ptr2 = new int*[10]; // 创建一个指向int类型指针数组的指针
// 将ptr指向的每个元素都赋值为1
for (int i = 0; i < 10; i++) {
ptr[i] = 1;
}
// 将ptr2指向ptr所指向的指针数组的每个元素都赋值为2
for (int i = 0; i < 10; i++) {
ptr2[i] = ptr + i;
*(ptr2[i]) = 2;
}
// 打印ptr2指向的指针数组的元素
for (int i = 0; i < 10; i++) {
cout << *(*(ptr2 + i)) << " ";
}
delete [] ptr;
delete [] ptr2;
return 0;
}
输出结果为:
2 2 2 2 2 2 2 2 2 2
在这个示例中,我们首先创建了一个int类型的指针数组ptr,然后创建了一个指向int类型指针数组的指针ptr2。接下来,我们将ptr指向的每个元素都赋值为1,然后将ptr2指向ptr所指向的指针数组的每个元素都赋值为2。最后,我们打印出ptr2指向的指针数组的元素,得到的结果是2 2 2 2 2 2 2 2 2 2。