1、使用第三个临时变量
最常见和最直观的方法,使用一个临时变量来保存其中一个变量的值。
#include <stdio.h>
int main() {
int a = 5, b = 10;
int temp;
printf("交换前:a = %d, b = %d\n", a, b);
temp = a;
a = b;
b = temp;
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
2、不使用临时变量,使用加减法
这种方法通过加法和减法来交换两个变量的值。
#include <stdio.h>
int main() {
int a = 5, b = 10;
printf("交换前:a = %d, b = %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
3、不使用临时变量,使用异或运算
使用位运算中的异或运算来交换两个变量的值。
#include <stdio.h>
int main() {
int a = 5, b = 10;
printf("交换前:a = %d, b = %d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
4、使用指针和函数
通过使用指针和一个辅助函数来交换两个变量的值。
#include <stdio.h>
void swap(int *x, int *y) {
int temp;
temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a = 5, b = 10;
printf("交换前:a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
5、使用宏定义
使用宏定义来实现交换两个变量的值。
#include <stdio.h>
#define SWAP(x, y) do { int temp = x; x = y; y = temp; } while (0)
int main() {
int a = 5, b = 10;
printf("交换前:a = %d, b = %d\n", a, b);
SWAP(a, b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}