//法一(正常方法)
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
相关推荐
Flynn Liang19 分钟前
LangChain4j 生产级工程骨架:12 个模块 + Docker 一键启动Severus_black1 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!噢,我明白了1 小时前
JAVA中的一些基础应用知识点武子康2 小时前
H3-World 为何在加载 LoRA 前,先检查导入的代码?SL_staff2 小时前
私有化低代码不是妥协,而是企业级数字化的自主可控主航道装不满的克莱因瓶2 小时前
【SpringAI Alibaba】ReactAgent结构化输出OutputType与OutputSchema实战秋天的怀念_David3 小时前
算法一千零一夜 · 第二十八夜 注册Java码农也是农3 小时前
Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选二本咕咕-机械转码3 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解学长毕设3 小时前
基于SpringBoot的游乐园管理系统-附源码