1、void*指针是指针,也指向内存中某个地址的数据,但是内存中的数据类型是不确定的,所以使用时需要转换类型。 2、void的意思是无类型,是无类型指针,可以指向任何类型的数据。 因此void指针通常被称为通用指针或泛指针,或万能指针。 实例 代码语言:javascript 复制 #include<stdio.h>intmain(void){int num1=1;cha...
void 在英文中作为名词的解释为 "空虚、空间、空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针"。 void 似乎只有"注释"和限制程序的作用,当然,这里的"注释"不是为我们人提供注释,而是为编译器提供一种所谓的注释。 void 的作用 1.对函数返回的限定,这种情况我们比较常见。 2....
intcmp_int(constvoid*first,constvoid*second){constint*x = first;// 把void指针转换成int指针constint*y = second;if(*x > *y)return1;if(*x == *y)return0;return-1; } 所以可以看到,void*指针使得相同的函数可以作用于不同类型的指针。 但是,这么做非常不安全,例如我们也可以完全做到这个。 qsort...
当我们想要设计一个可以传入任何类型的指针的函数的时候,我们就可以把参数设计为void *类型,而对于这类函数,内存的重新申请realloc函数其实也是void *的参数,很多操作内存的函数,参数设计其实都是void *类型的指针,如果你对于C语言掌握的可以,我相信下面两个函数你应该都了解过: 6. 万能指针充当函数指针调用函数 虽说...
void*是一种可以指向任何类型数据的指针。例如,您可以将int,float,或者struct的地址赋值给一个void*类型的指针。 inta=10;void*p=&a;//void*指向一个int类型的数据 void*在 C 语言中有着重要的地位,尤其是在实现通用的函数库或处理不同类型的数据时。例如,标准库函数malloc使用void*返回指向新分配内存的指针:...
// 通用函数 int calc(int a,int b=-1,void *fun) { if(b==-1) { return ((FAC)fun)(a); //执行强制转换 }else { return ((FAC)fun)(a,b); } } calc(2,3,minus); // c++下对函数指针要求比较严格,不能将void*转化为void (*)() ...
void指无类型,常用在函数前,表示什么也不用返回。 *代表一个指针,如int *p代表指针 p 指向一个整型,char *s代表指针 s 指向一个字符串的首地址。 而void *代表一个可能指向任何类型的指针,如下代码所示: #include <stdio.h> int main() { void *p; ...
也就是说,void*类型的指针可以接受任意类型的指针 但是不能够进行解引用操作,也不能进行加减运算 需要注意的是,void* 即使在接收某一具体类型的指针后,它的类型依然是void*,我们仍然无法对其进行解引用操作,需要进行强制类型转换才可以。 由于空指针的特殊性,我们一般将其运用在函数参数里,用以接收各种类型的参数。
在C语言中,void* 指针是一种特殊的指针类型,它可以指向任何类型的数据。这种灵活性使得 void* 指针在处理不同类型的数据时非常有用,尤其是在需要编写通用函数或者处理未知类型数据的情况下。 void* 指针的特点包括: 可以存储任何类型的指针; 不能直接进行指针运算; 在使用时通常需要进行类型转换。 让我们通过一些...