void*(void)数据类型
时间: 2023-07-05 14:23:09 浏览: 51
`void*`是一个通用指针类型,可以指向任何类型的数据,因为它的值是一个内存地址,而不是具体的数据类型。`void*`通常用于需要动态分配内存或者处理未知数据类型的情况。在C语言中,返回`void*`类型的函数通常用于分配内存,例如`malloc()`函数,而接受`void*`类型参数的函数则需要根据具体情况进行类型转换,以便正确地处理数据。需要注意的是,`void*`类型指针不能直接进行解引用操作,必须先进行类型转换才能访问指向的具体数据。
相关问题
C语言如何取出void ** 指向的数据
在 C 语言中,要取出 `void **` 指向的数据,需要进行一次指针类型转换。具体步骤如下:
1. 将 `void **` 指针强制转换成需要的指针类型,比如 `int **`。
2. 通过解引用操作符 `*` 取出指针指向的数据。
示例代码如下:
```c
void *p = some_data; // some_data 是指向某种数据类型的指针
void **pp = &p; // pp 是指向 void * 类型的指针
// 取出指针指向的数据
int **p_int = (int **)pp; // 将 void ** 指针强制转换成 int ** 指针
int data = **p_int; // 通过解引用操作符取出指针指向的数据
```
注意,这里的 `some_data` 只是一个占位符,实际上应该是某种数据类型的指针。在进行指针类型转换时,需要保证转换后的指针类型和实际数据类型相同,否则会导致程序运行时错误。
void * 类型指针
void * 类型指针是一种通用的指针类型,可以指向任何数据类型的地址。它的定义方式为:
void *p;
其中,p 是一个指向任何类型的指针。它可以指向任何类型的变量,但不能直接进行操作,需要先将其转换为具体的类型指针才能进行操作,如:
int *p1 = (int *)p;
这样就将 void * 类型指针转换成了 int 类型指针,可以对其进行操作了。void * 类型指针在 C 语言中的应用非常广泛,例如在动态内存分配中使用 malloc() 函数返回的就是 void * 类型指针。