//法一(正常方法)
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
相关推荐
晴天1611 小时前
Electron面试题-Day19白狐_79812 小时前
408 数据结构|线索二叉树两题详解:先序线索化后的空链域 + 中序前驱/后继判断GeekZHR12 小时前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“侧耳倾听11112 小时前
java 日志框架简介.道阻且长.12 小时前
8.LeetCode算法习题讲解--滑动窗口--长度最小的子数组(❁´◡`❁)Jimmy(❁´◡`❁)12 小时前
P1156 [USACO01OPEN] 垃圾陷阱她的男孩13 小时前
我用 LLM 把后台 CRUD 效率提升 10 倍:AI 代码生成器的架构与落地实践疯狂打码的少年13 小时前
【数据结构】二叉排序树(BST)的定义与操作lally.13 小时前
整数等差数列超图中的三个非微扰现象wabs66613 小时前
关于字符串【力扣541.反转字符串II的思考】