//法一(正常方法)
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 分钟前
Java 后端详解(四):分页与搜索她的男孩22 分钟前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解tntxia1 小时前
Mybatis的日志输入亦暖筑序2 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程用户298698530146 小时前
Java 实现 Word 文档加密与权限解除Yeats_Liao6 小时前
14:Servlet中的页面跳转-Java Web未秃头的程序猿6 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍鹤望兰6757 小时前
字节跳动国际支付-后端开发-三面面经Flittly7 小时前
【AgentScope Java新手村系列】(14)人机交互RainCity7 小时前
Java Swing 自定义组件库分享(十二)