//法一(正常方法)
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
相关推荐
学渣超14 分钟前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧掉鱼的猫16 分钟前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架Tairitsu_H18 分钟前
[LC优选算法#17] 链表 | 合并 K 个升序链表 | K个⼀组翻转链表_olone21 分钟前
Luogu P2704 [NOI2001] 炮兵阵地带刺的坐椅34 分钟前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架c2385636 分钟前
互斥锁高频面试题全解:从基础概念到底层实现,一文通关kebidaixu1 小时前
两轮BMS 防打火策略详解error:(1 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南wabs6662 小时前
关于动态规划【力扣1035.不相交的线和53.最大子数组和的思考】退休倒计时2 小时前
【每日一题】LeetCode 199. 二叉树的右视图 TypeScript