1. 注意:x和y同号的情况下容易溢出
x = x + y ;
y = x - y ;
x = x - y ;
2. 注意:x和y异号的情况下容易溢出
x = x - y;
y = x + y;
x = y - x;
3. 注意:可能会溢出
a = a * b;
b = a / b;
a = a / b;
4. 注意:两变量地址相同时出错
x ^= y ;
y ^= x ;
x ^= y ;
5.普通
temp = x ;
x = y ;
y = temp ;
6. 较为通用
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SWAP( type , x , y ) swap( sizeof(type), &x , &y )
void swap( int size , void *x , void *y)
{
void *temp = malloc(size) ;
memcpy( temp , x , size ) ;
memcpy( x , y , size ) ;
memcpy( y ,temp , size ) ;
}