c++ - 指向类的双指针

标签 c++ pointers

我记得在我的期末考试中看到了这行代码,直到今天我仍然无法理解它或它的用途。我厌倦了谷歌搜索“双指针”和“指向类数组的指针”,但仍然找不到答案。

我想知道您为什么要使用这样的东西(实际使用)或将我带到一个为我解释这个的网站。谢谢你。

vendingMachine **va = new vendingMachine*[numMachines];

最佳答案

所涉及的类型是一个类并不重要。它也可以是基本类型:

int **va = new int*[numInts];

语义相同。您有一个指向指针的指针。由于动态分配的数组是用指针实现的,所以它变成了一个指针数组。这是一个用例:

int a, b;
va[0] = &a;
va[1] = &b;

但由于如前所述,您可以使用指针实现数组,因此您也可以将其视为数组的数组。所以你有另一个用例:

va[0] = new int[10];
va[1] = new int[10];
// ...
va[numInts - 1] = new int[10];

va[0][0] = 2;
va[0][1] = 8;
// ...
va[numInts - 1][9] = 3;

所以你有一个数组数组。或者换句话说,int 的二维数组。如果您现在从 int 改回 vendingMachine,您将拥有 vendingMachine 对象的二维数组。

关于c++ - 指向类的双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13208276/

相关文章:

pointers - 指针解引用在 Go 中是如何工作的?

c++ - 用 GCC 4.5 编译的程序崩溃,而 GCC 4.4 没问题

c++ - 如何测试 double 值是否不为负

c++ - Boost API 检查目录路径是否在 C++ 中的网络上

c++ - 将 void 指针增加一个字节?两个?

pointers - 隐藏 nil 值,理解为什么 golang 在这里失败

C++纠缠共享指针

c++ - 如何解决eclipse中cplex的目录问题?

c++ - 如何使用指针从不同的函数访问局部变量?

c - 如果我尝试在 C 中定义一个指向字符串文字的指针,会发生什么情况?