标签:两个变量中的数据互换方法
在做软件开发的过程中,经常需要将两个变量中的数值进行互换。我们可以使用的互换方法有三种。
第一种方法:
int a = 3, b = 4;
int tmp;
tmp = a;
a = b;
b = tmp;
这种做法,是我们经常用到的做法,就是通过借助第三变量。
优点是:可读性强。
缺点是:引入第三方变量,占用内存大。
第二种方法:
int a = 3, b = 4;
a = a + b ; // a = 7; 原理是利用两个数的和 a + b = sum
b = a - b; // b = 7 - 4 = 3 b = sum - b
a = a - b; // a = 7 - 3 = 4; a = sum - b
这种方法的缺陷是: 如果两个变量的值都非常大的话,会造成两个变量的和溢出。
优点是:没有引入第三方变量,计较节省内存。
缺点是: 存在数据溢出的风险,可读性不强。
第三种方法:
int a = 3, b = 4;
a = a ^ b; // 原理是利用异或运算符
b = a ^ b; // b = a ^ b ^ b = a a ^ a = 0, b ^ 0 = b
a = a ^ b; // a = a ^ b ^ a = a ^ a ^ b
这种方法的优点是:没有引入第三方变量,节省内存空间;
不存在数据溢出的问题;
缺点是:技巧性较强,可读性较差。
本文出自 “阿辉仔” 博客,请务必保留此出处http://weiguozhihui.blog.51cto.com/3060615/1650435
标签:两个变量中的数据互换方法
原文地址:http://weiguozhihui.blog.51cto.com/3060615/1650435