【C语言】5种妙招教你轻松搞定变量值交换

互联网 19-4-27
C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,一共有5种方法,希望大家看完有所收获。

1.临时变量法

方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握。

#include<stdio.h> int main(void){      int a=1,b=2,tmp;           tmp =a;           a=b;           b=tmp;          printf("%d %d",a,b);      return 0;  }

2.加减交换法

方法解释:顾名思义,使用数学中的加减法进行交换,先把a+b的结果暂时先保存在变量a中,然后通过这改变后的a和原始的b进行减法就可以得到交换后的b,缺点是a+b的结果可能越界。

#include<stdio.h> int main(void){             int a=1,b=2;      a = a + b;      b = a - b;      a = a - b;           printf("%d %d",a,b);           return 0;  }

3.乘除交换法

方法解释:该方法与加减法类似,就是把加减替换为乘除,缺点是因为采用了乘法,因此比加法更容易越界,使用时应谨慎。

#include<stdio.h> int main(void){             int a=1,b=2;      a = a * b;      b = a / b;      a = a / b;           printf("%d %d",a,b);           return 0;  }

4.异或交换法

方法解释:巧妙使用异或运算来进行交换,这种方法主要利用了异或的特性a^b的值先保存到a,因为a^b^b=a所以可以顺利完成交换,这种方法是很完美的,不存在越界的问题。

#include<stdio.h> int main(void){      int a=1,b=2;       a = a ^ b;       b = a ^ b;       a = a ^ b;      printf("%d %d",a,b);      return 0; }

5.移位交换法

方法解释:这种方法不太常用,原理是把原来的int类型的a的值拆分成高16位和低16位,相当于多了16位的暂存空间可以周转,缺点是如果a或者b超过了16位,这种方法就会出错,此方法较复杂且容易出错,因此不建议大家使用。

#include<stdio.h> int main(void){      int a=1,b=2;      a <<= 16;      a |= b;      b = a >> 16;      a = a & 0xffff;           printf("%d %d",a,b);           return 0;  }

相关教程:C语言教程

以上就是【C语言】5种妙招教你轻松搞定变量值交换的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 变量值交换
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C#用来做什么的

相关资讯