交换两个值的函数用得挺多的,这里给出几个版本。
指针版:(不用头文件)
void My_swap(int *a,int *b){
*a ^= *b;
*b ^= *a;
*a ^= *b;
return ;
}
引用版:(不用头文件)
void My_swap(int &a,int &b){
a ^= b;
b ^= a;
a ^= b;
return ;
}
万能版:(头文件:string.h)
int My_swap(void *x, void *y, int size){
void *tmp;
if((tmp = malloc(size)) == NULL){ //交换不成功返回-1
return -1;
}
memcpy(tmp,x,size); memcpy(x,y,size); memcpy(y,tmp,size);
free(tmp);
return 0; //成功返回0
}
万能版可以用来交换数组