//法一(正常方法)
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
相关推荐
小bo波1 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择JieE2122 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断nanxun8862 天前
记一次诡异的 Docker 容器"串包"故障排查用户1563068103512 天前
Day01 | Java 基础(Java SE)行者全栈架构师2 天前
Maven dependency:tree 的 8 个高级用法行者全栈架构师2 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法令人头秃的代码0_02 天前
mac(m5)平台编译openjdkJieE2123 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题Jack203 天前
HarmonyOS开发中错误处理策略:网络异常统一处理小小杨树3 天前
读懂色彩:拍照调色不再难