我记得看到这行代码在我的期末考试,还是到今天我不出来或者一个使用它.我累了谷歌搜索"双指针"和"指针类的数组",但仍无法找到答案.
我想知道你为什么会用这样的事情(实际使用)或直接我一个网站,解释这对我来说.谢谢.
vendingMachine **va = new vendingMachine*[numMachines];
Run Code Online (Sandbox Code Playgroud)
所涉及的类型是一个类并不重要.它也可以是一个基本类型:
int **va = new int*[numInts];
Run Code Online (Sandbox Code Playgroud)
语义是一样的.你有一个指向指针的指针.由于动态分配的数组是用指针实现的,因此这将成为一个指针数组.这是一个用例:
int a, b;
va[0] = &a;
va[1] = &b;
Run Code Online (Sandbox Code Playgroud)
但是,如上所述,您可以使用指针实现数组,您也可以将其视为数组数组.所以你有另一个用例:
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;
Run Code Online (Sandbox Code Playgroud)
所以你有一个数组数组.或者换句话说,ints的二维数组.如果您现在更改从后int到vendingMachine,你有一个二维数组vendingMachine对象.