c语言中交换变量的方法有很多:
1.使用中间变量进行交换
指针模式:
swap( int* p1,int* p2 )
{
int p;
p = *p1;
*p1 = *p2;
*p2 = p;
}
引用变量模式:
void swap(int &a,int &b)
{
a+=b;
b=a-b;
a=a-b;
}
#define swap(a,b) a+=b;b=a-b;a=a-b
2.利用异或,不使用中间变量
指针模式:
void swap(int *a, int *b)
{
*a = (*a)^(*b);
*b = (*a)^(*b);
*a = (*a)^(*b);
}
引用变量模式:
void swap(int &a, int &b)
{
a = a^b;
b = a^b;
a = a^b;
}
直接定义成宏:
a ^= ( b ^= ( a ^= b ) )