异或运算中有这样的一个性质:a == a^b^b,
计算过程是:
a = a ^ b
b = b ^ (a^b)
a = (a^b) ^ (b^a^b)
void swap(int* a, int* b)
{
//(1)用异或运算
*a ^= *b;
*b ^= *a;
*a ^= *b;
*a ^= *b ^= *a ^= *b;
*a ^= (*b ^= (*a ^= *b));
//(2)用加减运算
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
//2、引入中间变量
int t = *a;
*a = *b;
*b = t;
}
Swap函数的N种写法
最新推荐文章于 2025-09-13 20:56:02 发布
611

被折叠的 条评论
为什么被折叠?



