【C语言】互换两个变量的值而不借助其它变量

阅读: 评论:0

【C语言】互换两个变量的值而不借助其它变量

【C语言】互换两个变量的值而不借助其它变量

在C语言中互换两个变量的值而不借助中间变量。

 

一、算术运算法

 

代码实现:

#include <stdio.h>

void main()

{

    int a = 10, b = 12;

    a=b-a;    //执行后a=2,b=12

    b=b-a;    //执行后a=2;b=10

    a=b+a;    //执行后a=12;b=10

}

 

解析思路:

    将算术的运算过程理解成计算坐标轴上的两个点坐标。

    

    代码执行的三条语句:

  1. 计算B点到A点之间的距离L,储存在变量a中;

  2. 计算A点到原点的距离(即原先A点坐标),储存在变量b中,此时完成把a的值传给b;

  3. 计算B点到原点的距离(即原先B点坐标),储存在变量a中,此时完成把b的值传给a。

 

 

二、位运算

 

代码实现:

#include <stdio.h>

void main()

{

    int a = 0x05, b = 0x0C;

    a = a^b;

    b = a^b;

    a = a^b;

}

解析思路:

    位运算使用的是XOR(异或)的运算符。对运算中的两个数进行逐bit运算,对于每个bit的运算结果,不同为“1”,相同为“0”。

    代码执行的三条语句:

  1. 计算a和b异或的结果储存在a中;

  2. 此时a中存的值再与b异或,得到的结果就是最初a的值,储存在b中;

  3. 最后再用a存的值与b异或,得到的结果就是最初b的值。


 

 

更多技术干货分享,敬请关注微信公众号:DigCore

或者扫码关注公众号

本文发布于:2024-02-01 22:00:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679605639693.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变量   而不   两个   语言
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23