不引入第三个变量交换两个变量的值

据我所知有两种办法:

1、算术运算:

        int a = 10; 
        int b = 12; 
        a = a+b; // a = 10+12 = 22
        b = a-b; //b = 22-12 = 10
        a = a - b; // a = 22-10 = 12 交换成功

2、位运算:

        int a = 10; 1010
        int b = 12; 1100
        a = a^b;    0110
        b = a^b;    1010  // b = 10
        a = a^b;    1100  // a = 12   交换完成

还有一种应该可以是交换地址,如果还有别的方法欢迎大家留言补充。

你可能感兴趣的:(算法,交换变量)