交换两个变量值 :三种方式解决

借助临时变量
void funa(int *x , int *y) {
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}
//或者
void funa(int *x, int *y) {
   int temp;      // 为临时变量分配一个实际的内存空间
   int *p = &temp; // 指针 p 指向这个空间

   *p = *x;  // 保存 x 的值
   *x = *y;
   *y = *p;  // 还原 x 的原值到 y
}
加减法
void fund(int *x , int *y) {
    *x = *x + *y;
    *y = *x - *y;
    *x = *x - *y;
}
异或法
void funx(int *x, int *y) {
    if (x == y) return; // 防止指针指向同一地址时出错
    *x = *x ^ *y;
    *y = *x ^ *y;
    *x = *x ^ *y;
}
posted @ 2025-04-18 10:59  w1888  阅读(16)  评论(0)    收藏  举报