对两个变量的值进行互换的多种方法
例子:
方式一:(利用第三个变量进行交换)
int x=3;
int y=6;
int z;
z=x;
x=y;
y=z;
方式二:(不能使用第三个变量,利用加减法运算)
x=x+y;
y=x-y;
x=x-y;
方式三:(不使用第三变量,利用异或运算)
6^3^3=6
0110
^0011
-----
0101
^0011
-----
0110
异或符号的特点:一个数异或另一个数两次,结果还是这个数,
所以交换两变量的代码如下:
0110
^0011
-----
0101
^0011
-----
0110
异或符号的特点:一个数异或另一个数两次,结果还是这个数,
所以交换两变量的代码如下:
x=x ^ y; // x = 3 ^ 6
y=x ^ y; // y=(3 ^ 6) ^ 6 y=3
x=x ^ y; // x=(3 ^ 6) ^ 3 x=6
这样就完成了交换
该方式虽然效率高,而且避免了超出int值,但是可读性较差。
三种方式都可以对两个变量的值进行交换,但是推荐使用第一种。(面试除外)
该方式虽然效率高,而且避免了超出int值,但是可读性较差。
三种方式都可以对两个变量的值进行交换,但是推荐使用第一种。(面试除外)