编写swap函数交换两个数(C语言 + 两种方法实现 + 详细注释)

//需要传指针才能改变实参

void swap1(int* x, int* y) {
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}

void swap2(int* x, int* y) {               //两个相同的数异或为0,任何数异或0还是它本身
    *x = *x ^ *y;           
    *y = *x ^ *y;                   //此时*y = (*x ^ *y) ^ *y = *x ^ 0 = *x
    *x = *x ^ *y;                   //此时*x = (*x ^ *y) ^ *x = (*x ^ *x) ^ *y = *y ^ 0 = *y
}

发布了31 篇原创文章 · 获赞 20 · 访问量 566

猜你喜欢

转载自blog.csdn.net/qq_45472866/article/details/104059502