如何交换两个变量的值而不借助于临时变量

如何交换两个变量的值?一般我们是这样做的:

int a = 10;  
int b = 20;  
  
int temp = a;  
a = b;  
b = temp;  

这样借助于第三个临时变量,清晰易懂。如何不借助于第三个临时变量来实现两个数值的交换?

#include <stdio.h>  
  
int main()  
{  
    int a = 10;  
    int b = 20;  
    printf("交换前:a = %d, b = %d\n", a, b);  
    // 关键代码  
    a = a + b;  
    b = a - b;  
    a = a - b;  
  
    printf("交换后:a = %d, b = %d\n", a, b);  
  
    return 0;  
}  

输出:

交换前:a = 10, b = 20  
交换后:a = 20, b = 10  

关键代码:

a = a + b;  
b = a - b;  
a = a - b;  
posted @   double64  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示