void *p 就是泛型指针。
感觉有点像java中的object一样,很牛。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int swap(void *x ,void *y ,int size){
void *tmp;
//为tmp申请内存空间,如果失败直接返回 此函数在 stdlib.h 中
if((tmp=malloc(size))==NULL)
return -1;
//此处进行数值交换 此函数在string.h头文件中
memcpy(tmp,x,size);// tmp=x;
memcpy(x,y,size);// x=y;
memcpy(y,tmp,size);// y=tmp;
free(tmp);//一定要记得释放空间
return 0;
}
int main(void){
int a=1,b=2;
int result=-1;
result=swap(&a,&b,4);
if(result==0){
printf("%d %d",a,b);
}else{
printf("转换失败");
}
scanf("%d",&a);
}