//法一(正常方法)
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
相关推荐
NAGNIP5 小时前
万字长文!回归模型最全讲解!之歆5 小时前
Spring AI入门到实战到原理源码-MCP知乎的哥廷根数学学派5 小时前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)yangminlei6 小时前
Spring Boot3集成LiteFlow!轻松实现业务流程编排qq_318121596 小时前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答J_liaty6 小时前
Spring Boot整合Nacos:从入门到精通阿蒙Amon7 小时前
C#每日面试题-Array和ArrayList的区别daidaidaiyu7 小时前
Spring IOC 源码学习 一文学习完整的加载流程666HZ6667 小时前
数据结构2.0 线性表2***d8857 小时前
SpringBoot 集成 Activiti 7 工作流引擎