对于void类型指针,它可以指向任意类型的数据,亦可以用任意类型的指针给它赋值,如果要将它赋给其他类型的指针,则需强制类型转换
下面是对void类型指针用法的一些探索,利用内存复制函数进行变量制的交换
#include<stdio.h>
#include<stdlib.h>
void swep(void *a,void *b,size_t size)
{
void *c = malloc(sizeof(size));
memcpy(c,a,size);
memcpy(a,b,size);
memcpy(b,c,size);
}
int main(void)
{
int a = 1,b = 2;
swep(&a,&b,sizeof(a));
printf("%d %d",a,b);
return 0;
}
可能有人会问,这样有什么好处呢,我用简单的直接交换也可以阿,为什么要用到这个
但是诸位考虑这样一个问题,如果要写一个可以交换任意类型的变量交换函数怎么办呢,是吧
以上就是我对void类型指针的一点用法,有不足之处希望大家可以在评论里面指出来
谢谢,我是菜鸟魔头