交换两个变量值 :三种方式解决
借助临时变量
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;
}

浙公网安备 33010602011771号