//法一(正常方法)
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
相关推荐
q_3023819556几秒前
14.7MB轻量模型!NVIDIA Jetson边缘设备解锁工厂设备故障预警新方案spencer_tseng1 分钟前
Eclipse HeapDumpVic101012 分钟前
Redis防重复点击与分布式锁实现方案对比笔记计算机毕设指导65 分钟前
基于微信小程序的派出所业务管理系统【源码文末联系】爱敲点代码的小哥8 分钟前
C#哈希表遍历技巧全解析以及栈 堆 队列的认识xiaoxue..10 分钟前
爬楼梯问题:从递归到动态规划再到闭包的进化之路音浪豆豆_Rachel11 分钟前
Flutter跨平台通信的实战演练:复杂数据结构与单元测试在鸿蒙生态中的完美实现旺仔小拳头..11 分钟前
数据结构(二)线性表————栈与队列ohoy13 分钟前
Xxl-Job实现订单30分钟未支付自动取消CoovallyAIHub13 分钟前
YOLO11算法深度解析:四大工业场景实战,开源数据集助力AI质检落地