在软件开发的过程中,经常会将两个变量中的值进行互换。那么两个变量中的值进行互换的方法有几种呢?

   常见的两个变量中的值互换的方法有三种,下面将进行一一介绍,当是一个总结。

   第一种方法:

int a = 3, b = 4;
int tmp;

tmp = a;
a   = b;
b   = tmp;

    这种方法的优点是:代码可读性强,容易理解。

              缺点是:使用第三方变量,浪费内存;


    第二种方法:

int a = 3, b = 4;

a = a + b;  
b = a - b;   
a = a - b;

     这种方法的优点是:没有第三方变量,节省内存空间;

               缺点是:存在数据溢出问题,可读性不强。

     数据溢出问题的原因:当两个变量a, b中的数值比较大时, a+b的值就有可能超过了一个int的数据范围,造成数据溢出。


    第三种方法:

int a = 3, b = 4;

a = a ^ b;  // a ^ b ^ b = a
b = a ^ b;  // b = a ^ b ^ b = a
a = a ^ b;  // a = a ^ b ^ a = b ^ a ^ a = b

//这种方法的思想是:
                   利用异或的原理。 a ^ 0 = a, b ^ b = 0 ,则 a ^ b ^ b = a

    这种方法的优点是:没有引入第三方变量,不存在数据溢出的问题

              缺点是:可读性不强,技巧性太强,不容易想到。