这个题目在以前看到过,但是好记性不如烂笔头。  在本次的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

}。

 理解清楚了 就很简单了,其实利用了^ (位异或)操作符号。当然这种方案只有整数 情况下才可以使用。