最近在论坛里又看到一个很熟悉的问题:不使用中间变量交换两个变量的值。网上流传的大概有两种方法,在这里总结一下。
【方法一】
假设需要交换的两个变量都是整型,变量名分别为a和b。
a = a^b;
b = a^b;
a = a^b;
评价:该方法只能针对整形变量进行操作。
【方法二】
假设需要交换的两个变量名分别为a和b。
a=a+b;
b=a-b;
a=a-b;
评价:该方法虽然可以用于浮点数,但是在变量值比较大的情况下可能会产生溢出。
后记:其实使用中间变量交换两个数并不会增加程序多少负担。相反,在实际的项目开发中,如果使用上述技巧交换两个变量的值,会降低程序的可读性,弊大于利!所以,不建议在实际开发中使用类似的技巧。
转载于:https://my.oschina.net/xiaoyunhu/blog/5986