本文主要是介绍C语言第三十三弹---交换变量(不使用临时变量),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C语言在不使用临时变量的情况下实现变量交换
思路:看见交换变量,那么最容易考虑到的就是使用临时变量交换。如果不允许使用临时变量那么该如何考虑呢?使用^异或位运算(二进制位相同为0 不同为1),通过利用异或运算的特性可以完成交换。
int main()
{int a = 3;int b = 5;a = a ^ b;//0011 ^ 0101 = 0110b = a ^ b;//0110 ^ 0101 = 0011a = a ^ b;//0110 ^ 0011 = 0101printf("a = %d,b = %d",a,b);return 0;
}
其实想要完成交换还可以通过加减法、乘除法,但是这些方法具有一定的局限性,对数字有很多要求,不然可以会发生溢出或者精度不准等问题。
这篇关于C语言第三十三弹---交换变量(不使用临时变量)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!