c语言中double*与double**
时间: 2023-09-06 13:07:17 浏览: 143
在C语言中,double*是指向double类型数据的指针,而double**是指向指向double类型数据的指针的指针。
具体来说,double*可以指向一个double类型的变量,也可以指向一个double类型数组中的第一个元素。而double**则通常用于指向二维数组中的第一个元素,即指向一个指向double类型的指针数组的指针。
举个例子,假设有一个二维数组arr,其每个元素都是double类型的数据,可以这样声明:
```c
double arr[3][4];
double (*p)[4] = arr; // p是一个指向double类型数组的指针
double **q = (double **)arr; // q是一个指向指向double类型数据的指针的指针
```
需要注意的是,虽然在这个例子中可以把arr转换成double**类型,但实际上这种类型转换并不总是安全的,因为它会导致指针的类型信息丢失。因此,在使用double**类型时需要特别小心,确保指针指向的数据类型和内存布局符合预期。
阅读全文