标签:两个变量中数据交换
在软件开发的过程中,经常会将两个变量中的值进行互换。那么两个变量中的值进行互换的方法有几种呢?
常见的两个变量中的值互换的方法有三种,下面将进行一一介绍,当是一个总结。
第一种方法:
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
这种方法的优点是:没有引入第三方变量,不存在数据溢出的问题
缺点是:可读性不强,技巧性太强,不容易想到。
标签:两个变量中数据交换
原文地址:http://weiguozhihui.blog.51cto.com/3060615/1650985