c语言 在定义时:double **x表示?

发布网友 发布时间:2022-04-22 22:56

我来回答

3个回答

热心网友 时间:2023-10-03 23:24

“**x”表示指向指针的指针,double表示最终值的类型是双精度浮点类型。


何谓指向指针的指针?

首先, x是一个指针,它指向的值又是一个指针,这个指针所指向的值才是double值,如:

+---+    +----+    +--------+
| x +--->+ *x +--->+ double +
+---+    +----+    +--------+


什么场合用呢?

比如:有一个函数叫allocDoubleArray, 可以传一个参数,如果成功则返回一个double类型的数组,则这个函数可以这样定义:

bool allocDoubleArray(int arraySize, double **x)
{
   *x = malloc(sizeof(double) * arraySize);
   return *x != NULL;
}


使用时是这样的:

double *x = NULL;
if (allocDoubleArray(5, &x))
{
   //此时x将不再指向NULL,则是指向一个长度为5的double数组
   double x0 = x[0];
   double x1 = x[1];
   double x2 = x[2];
   double x3 = x[3];
   double x4 = x[4];
}

热心网友 时间:2023-10-03 23:24

应该是二级双精度指针

热心网友 时间:2023-10-03 23:24

double **x表示double双指针追问什么叫双指针

追答参考双指针的深入解析 http://blog.csdn.net/feiyinzilgd/article/details/5302369

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com