//法一(正常方法)
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
相关推荐
小凡子空白在线学习3 分钟前
工作拆分so总结88号技师4 分钟前
2026年2月新锐一区SCI-完整家庭互动优化算法Undivided Family Interaction Algorithm-附Matlab免费代码手揽回忆怎么睡8 分钟前
java打包无效的发行版:xx,临时修复当前窗口指定 JDK21李日灐16 分钟前
【优选算法5】位运算经典算法面试题汉克老师17 分钟前
GESP5级C++考试语法知识(十四、分治算法(一))一直有一个ac的梦想18 分钟前
cmu15445 2025fall lec15 query optimiaztion Pt1郝学胜-神的一滴18 分钟前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术SamDeepThinking21 分钟前
IntelliJ IDEA 中有什么让你相见恨晚的技巧?SamDeepThinking22 分钟前
为什么选微服务而不是动态扩容单体风筝在晴天搁浅23 分钟前
字节 LeetCode CodeTop 912.排序数组