C语言不创建中间变量交换2个数

使用异或实现;

‌C语言中的异或运算‌符合以下规律,

‌ 交换律‌:即a ^ b = b ^ a。

‌ 结合律‌:(a ^ b) ^ c = a ^ (b ^ c)。

‌ 自反性‌:对于任意操作数a,有a ^ a = 0。

‌ 零元素‌:对于任意操作数a,有a ^ 0 = a。

‌ 唯一性‌:对于任意操作数a,有a ^ a = 0和a ^ 0 = a。

可利用实现不创建中间变量交换2个数;

cpp 复制代码
void CYhswpView::OnDraw(CDC* pDC)
{
	CYhswpDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CString str1;

	int a = 99, b = 33;
	str1.Format("a=%d,  b=%d", a, b);
	pDC->TextOut(30, 30, str1);

	a = a ^ b;
	b = b ^ a;//b=b^ a^b=a
	a = a ^ b;//a=a^ a^b=b

	str1.Format("a=%d,  b=%d", a, b);
	pDC->TextOut(30, 90, str1);

}
相关推荐
程序员老舅1 小时前
啃透 I2C 驱动开发,才算入门嵌入式 Linux 内核驱动
数据结构·驱动开发·b树·内核·嵌入式·嵌入式开发·i2c
青山木9 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode
Livia要学习12 小时前
Python2和Python3字典底层原理
数据结构
青梅橘子皮12 小时前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
Adios79412 小时前
搜索二维矩阵 II
java·数据结构·算法
灵枢时代17 小时前
小程序在生鲜配送行业,如何设计夜间预约和次日达的订单处理流程?
数据结构·人工智能·小程序
一条大祥脚17 小时前
ABC468 扫描线|贡献法|二阶差分|线段树优化DP
数据结构·算法
mifengxing2 天前
LeetCode 189 轮转数组|3种解法拆解,从暴力到O(1)原地最优解
数据结构·算法·leetcode
MIngYaaa5202 天前
2026暑期牛客多校3 2026-7-24
数据结构·算法·000
2501_937860942 天前
Java 集合底层深度剖析:Map 与 Set、二叉搜索树、哈希表全解
java·数据结构·散列表