不使用中间变量交换a,b的值

  1. 变量交换a,b值得三种方式

  • 使用临时变量进行交换
1 void swap1(int &a,int &b)
2 {
3 int temp=a;
4 a=b;
5 b=temp;
6 }
  • 使用加减运算进行交换
1 void swap2(int &a,int &b)
2 {
3 a=a+b;
4 b=a-b;
5 a=a-b;
6 }
  • 使用异或运算进行交换
void swap3(int &a,int &b)
{
a^=b;
b^=a;
a^=b;
}

  2.上述的三个swap()函数均为引用传参的方式

  swap2(int &a,int &b)有可能会发生数据溢出的情况,相比较而言使用swap3()比较好

 

posted @ 2018-12-20 11:43  long_ago  阅读(727)  评论(0编辑  收藏  举报