这个题目在以前看到过,但是好记性不如烂笔头。 在本次的csdn中,无意中再次看到这个简单的方法。也借此机会自己整理下;
若在借助第三变量的情况下实现起来很简单,如下
void swap(int * a,int *b){
int c;
c=*a;
*a=*b;
*b=c;
}
上面估计是个程序员都会。
也没什么好说的,下面不借助第三个变量的算法 ,应该高级一点的程序员才会体会深一些。
void swap(int *a ,int *b){
*a=*a^*b; //
*b=*a^*b;//---*a^*b^*b=*a
*a=*a^*b;//--*a^*b^*a=*b
}。
理解清楚了 就很简单了,其实利用了^ (位异或)操作符号。当然这种方案只有整数 情况下才可以使用。