交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。

复制代码
//法一(正常方法)
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;
}
相关推荐
python_chai1 小时前
Python核心数据结构详解:元组、集合与字典
java·数据结构·python
爱编程的王小美1 小时前
8876行详解数据结构,从入门到入坟
数据结构
老华带你飞2 小时前
医药垃圾分类管理系统|基于SSM+vue医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)
java·数据库·vue·毕业设计·论文·ssm·医药垃圾分类管理系统
程序员小续2 小时前
React 多个 HOC 嵌套太深,会带来哪些隐患?
java·前端·javascript·vue.js·python·react.js·webpack
Fantasydg3 小时前
DAY 38 leetcode 15--哈希表.三数之和
算法·leetcode·散列表
rider1893 小时前
【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico
java·容器·kubernetes
编程绿豆侠3 小时前
力扣HOT100之链表:19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
ゞ 正在缓冲99%…3 小时前
leetcode274.H指数
java·算法·leetcode
旷野本野5 小时前
【Java】Maven
java·开发语言·maven
坊钰5 小时前
【MySQL 数据库】数据类型
java·开发语言·前端·数据库·学习·mysql·html