关于void 类型指针的一些用法


对于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类型指针的一点用法,有不足之处希望大家可以在评论里面指出来

谢谢,我是菜鸟魔头

猜你喜欢

转载自blog.csdn.net/wobushimotou/article/details/80387052