//法一(正常方法)
int main()
{
int a = 3;
int b = 5;
int tmp = 0;//临时变量
printf("before:a=%d b=%d\n", a, b);
tmp = a;
a = b;
b = tmp;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
//法二(加减法) 有缺陷 a=a+b超出范围就可能出错(可能会溢出)
int main()
{
int a = 3;
int b = 5;
printf("before:a=%d b=%d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
//法三(异或法)
int main()
{
int a = 3;
int b = 5;
printf("before:a=%d b=%d\n", a, b);
a = a ^ b;//a 011 b 101 异或结果为110
b - a ^ b;
a = a ^ b;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。
失落的香蕉2024-01-20 6:05
相关推荐
雨中飘荡的记忆29 分钟前
财务对账系统设计与实现0***h94229 分钟前
使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式没书读了31 分钟前
数据结构-考前记忆清单雨中飘荡的记忆32 分钟前
布式事务详解:从理论到实践(RocketMQ + Seata)灰灰勇闯IT38 分钟前
KMP算法在鸿蒙系统中的应用:从字符串匹配到高效系统级开发(附实战代码)小龙报39 分钟前
【算法通关指南:数据结构和算法篇 】队列相关算法题:3.海港csuzhucong42 分钟前
一阶魔方、一阶金字塔魔方、一阶五魔方i***486144 分钟前
微服务生态组件之Spring Cloud LoadBalancer详解和源码分析zzlyx991 小时前
用C#采用Avalonia+Mapsui在离线地图上插入图片画信号扩散图Aevget1 小时前
MyEclipse全新发布v2025.2——AI + Java 24 +更快的调试