写了一个交换int值的函数:
void swap(int* a, int* b)
{
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
现在交换2个值,data数组下标为i和j的元素:
为了简化代码,没有对i和j相等的情况作特殊处理,导致有一种情况,i == j下:
swap(data[i], data[j]);
在执行了*a ^= *b;后, *a == *b == 0
写了一个交换int值的函数:
void swap(int* a, int* b)
{
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
为了简化代码,没有对i和j相等的情况作特殊处理,导致有一种情况,i == j下:
swap(data[i], data[j]);
在执行了*a ^= *b;后, *a == *b == 0