1.临时变量存储
最容易想到的办法,没啥额外要求用这个一般没问题。
void swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
}
2.两个数相加再分离
特点:不需要中间变量
void swap(int a,int b)
{
a = a + b;
b = a - b;
a = a - b;
}
3.两数异或
道理和相加差不多
void swap(int a,int b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
在数据库操作语句里面,方便一句话搞定问题。
update Table set Row = CHAR(ASCII('a') ^ ASCII('b') ^ ASCII(Row));
//其中 Table Row 是标明和列名;
4.利用栈特点
为了交换建个栈实在麻烦,不过汇编中还是蛮好用的。
push a
push b
pull a
pull b
还有其他方法,如 移位什么的,暂时不提了。用不上那么多。