C语言如何交换两变量值? 5大方法告诉你!

  

<强>写在前面:

  

C语言中交换两个变量值的操作经常会用的到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,也算是对这个问题的统一回复,我一共总结了5种方法(名字都是我自己取的,不当之处还请批评指正),希望大家看完有所收获。

  

<强> 1。临时变量法

  

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

  
 <代码> # include
  int主要(空白)
  {
  int a=1, b=2, tmp;
  tmp=一个;
  a=b;
  b=tmp;
  printf (" % d % d ", a, b);
  返回0;
  } 
  

<强> 2。加减交换法

  

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

  
 <代码> # include
  int主要(空白)
  {
  int a=1, b=2;=a + b;
  b=a - b;
  一个=a - b;
  printf (" % d % d ", a, b);
  返回0;
  } 
  

<强> 3。乘除交换法

  

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

  
 <代码> # include
  int主要(空白)
  {
  int a=1, b=2;
  一个=a * b;
  b=a/b;
  一个=a/b;
  printf (" % d % d ", a, b);
  返回0;
  } 
  

<>强4。异或交换法

  

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

  
 <代码> # include
  int主要(空白)
  {
  int a=1, b=2;=^ b;
  b=^ b;=^ b;
  printf (" % d % d ", a, b);
  返回0;
  } 
  

<强> 5。移位交换法

  

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

  
 <代码> # include
  int主要(空白)
  {
  int a=1, b=2;
  & lt; & lt;=16;
  |=b;
  ,b=祝辞的在16;
  一个=,0 xffff;
  printf (" % d % d ", a, b);
  返回0;
  } 
  

<强>反思总结:
其实这五种方法从本质上分就三大类,一是临时变量,二是加减乘除运算,三是位运算。因为其各自优缺点的问题,我个人建议大家尽量使用临时变量法和异或交换法这两种,其中临时变量法在其他的地方也应用极多,大家重点掌握,就讲到这里吧,谢谢大家。

  

 C语言如何交换两变量值? 5大方法告诉你!”> </p>
  <p> * *加C/c++学习交流群获取C语言,c++, Windows高级编程,MFC框架编程,QT框架编程,大型企业实战项目.Linux应用程序开发,Linux内核研究等多个知识点高级进阶干货的直播免费学习权限都是大牛带飞让你少走很多的弯路的群…号是546912356 </p>
  <p>注:加群要求</p>
  <p> 1,零基础,目前遇到困难不知从何下手可以加。</p>
  <p> 2,在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修,跳槽拿高薪的可以加。</p>
  <p> 3,基础非常扎实,但对目前主流技术欠缺,需要突破技术瓶颈的可以加。</p>
  <p> 4,觉得自己很牛B,一般需求都能搞的定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。</p>
  <p> 5。企业一线C/c++高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面,科学地建立自己的技术体系和技术认知! * * </p><h2 class=C语言如何交换两变量值? 5大方法告诉你!