C语言 (int **)
时间: 2024-07-30 12:00:57 浏览: 49
C语言中指针 int *p=0;和int *p;*p=0;和”&“的关系和区别详解
在C语言中,`(int **)`是一个指向指针的指针类型别名。它表示的是可以存储`int`类型的指针地址的变量。当你看到这样的声明,实际上是在创建一个可以指向其他整型指针的变量。这种类型常用于动态内存分配、函数返回值传递等场景,比如`malloc()`函数会返回一个指向所分配内存块首地址的`void *`,你需要通过 `(int **)`将其转换为`int *`来操作。
举个例子:
```c
int *arr; // 声明一个指向int的普通指针
(int **)ptr = &arr; // 将arr的地址赋给一个指向指针的指针
// 现在ptr指向arr这个地址,如果之后动态分配了内存,可能会像下面这样做
int **new_ptr = malloc(sizeof(int *));
*new_ptr = malloc(sizeof(int)); // 动态分配一个int并获取其地址
// 使用(*new_ptr)访问动态分配的内存
```
阅读全文