void swap(int *x, int *y) {
if (x != y) {
*y = *x ^ *y;
*x = *x ^ *y;
*y = *x ^ *y;
}
}
注意:在进行交换的时候,必须先判断两个指针是否指向同一个位置,如果不判断,当两个指针指向相同的地址,将使得*x和*y结果为0。
无需中间变量的两数交换算法
最新推荐文章于 2025-03-03 21:55:28 发布
void swap(int *x, int *y) {
if (x != y) {
*y = *x ^ *y;
*x = *x ^ *y;
*y = *x ^ *y;
}
}
注意:在进行交换的时候,必须先判断两个指针是否指向同一个位置,如果不判断,当两个指针指向相同的地址,将使得*x和*y结果为0。