void* 是一种通用指针,可以指向任何类型的数据。它是一种灵活性极高的指针类型,用于实现通用接口和处理未知数据类型的场景。在需要访问实际数据时,必须将其转换为具体的数据类型。 4.3 void** void** 是指向 void* 的指针,用于处理指针的指针,尤其在需要通过函数修改指针值时非常有用。它提供了间接引用的能力,...
在内存的分配中我们可以见到 void 指针使用:内存分配函数 malloc 函数返回的指针就是void *型,用户在使用这个指针的时候,要进行强制类型转换,也就是显式说明该指针指向的内存中是存放的什么类型的数据(int *)malloc(1024)表示强制规定 malloc 返回的 void* 指针指向的内存中存放的是一个个的 int 型数据。 2. ...
void *是一种指针类型,常用在函数参数、函数返回值中需要兼容不同指针类型的地方。我们可以将别的类型的指针无需强制类型转换的赋值给void *类型。也可以将void *强制类型转换成任何别的指针类型,至于强转的类型是否合理,就需要我们程序员自己控制了。 #include<stdio.h>intmain(intargc,char*argv[]){inta =2;...
void say(int type,void* pArgs) { switch (type) { case 0: { double* d = (double*)pArgs; break; } case 1: { int* i = (int*)pArgs; break; } } } 该函数使用一个type来表示当前参数void*的类型,内部通过type判断转换的类型。 2.2:函数返回值不需要考虑类型,只关心返回的大小...
也就是说,void*类型的指针可以接受任意类型的指针 但是不能够进行解引用操作,也不能进行加减运算 需要注意的是,void* 即使在接收某一具体类型的指针后,它的类型依然是void*,我们仍然无法对其进行解引用操作,需要进行强制类型转换才可以。 由于空指针的特殊性,我们一般将其运用在函数参数里,用以接收各种类型的参数。
voidqsort(void*base,size_t nmemb,size_t size,int(*compar)(constvoid*,constvoid*)); 它的第三个参数就是比较函数,它接受的参数都是const void*,如果你的比较对象是一个结构体类型,那么你自己在实现compar函数的时候,也必须是转换为该结构体类型使用。
存储结构体为(void *)的步骤如下: 定义一个结构体,并初始化其成员变量。 使用(void *)类型的指针变量,将结构体的地址赋值给该指针变量。 示例代码如下: 代码语言:txt 复制 typedef struct { int id; char name[20]; } Person; Person person; person.id = 1; strcpy(person.name, "John Doe"); void...
void 被翻译为"无类型",相应的void * 为"无类型指针"。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void 的作用 1.对函数返回的限定,这种情况我们比较常见。2.对函数参数的限定,这种情况也是比较常见的。一般我们常见的就是这两种情况:(1)当函数不需要返回值值时,...
void* 就是一个任意类型的指针,和void恰恰相反,void* 它并不是空,也不是什么都不返回,而是可以返回一个任意类型的指针,这里需要谨记的有两个点,一就是任意类型,二是指针。 代码示例 在这里我们给出了一个简单的void* 返回int* 类型的函数和一个返回char* 类型的函数,具体请看一下代码。