我有一个样例的 C
程序,我正在试图理解它。下面是源代码中的一个函数摘录:
double** Make2DDoubleArray(int arraySizeX, int arraySizeY)
{
double** theArray;
theArray = (double**) malloc(arraySizeX*sizeof(double*));
int i = 0;
for (i = 0; i < arraySizeX; i++)
theArray[i] = (double*) malloc(arraySizeY*sizeof(double));
return theArray;
}
我的问题是在返回类型中的
**
有什么意义。我知道*
通常用作指针。我知道它也可以用来解除指针引用。这让我想到
double**
是一个双精度值,因为它本质上是引用的解引用。我的想法正确吗?如果不是,请有人解释一下在这个例子中使用**
的用法。
double **
是“指向指针的指针”。你所写的**double
没有意义:是“双重指向指针”,因此**double
是无效的语法。 - yellowantphil