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; }