1.中间变量法
这种方法不多说
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
int t;
t = a;
a = b;
b = t;
printf("%d, %d\n", a, b);
}
2.通过指针交换两个数的值
通过传地址的方式来交换变量的值
#include <stdio.h>
void swap(int *x, int *y)
{
int t;
t = *x;
*x =*y;
*y = t;
}
int main()
{
int a = 1;
int b = 2;
swap(&a, &b);
printf("%d, %d\n", a, b);
}
3.不用中间变量交换两个数的值
#include <stdio.h>
int main()
{
int x = 1, y = 2;
x = x + y;
y = x - y;
x = x - y;
printf("%d, %d\n", x, y);
return 0;
}
4.通过宏函数的方法实现两个数的交换
#include <stdio.h>
#define swap(x, y) {int t; t = x; x = y; y = t;}
int main()
{
int x = 1, y = 2;
swap(x, y)
printf("%d, %d\n", x, y);
return 0;
}
5.通过异或的方法来实现,此方法效率最高,不需要中间变量
#include <stdio.h>
int main()
{
int a = 1, b = 2;
a = a^b;
b = a^b;
a = a^b;
printf("%d, %d\n", a, b);
return 0;
}