#前言
参考狄泰软件唐老师
#include <stdio.h>
void swap1(int* a, int* b)
{
int t = 0;
t = *a;
*a = *b;
*b = t;
}
#define swap2(a, b) \
{ \
int t = a; \
a = b; \
b = t; \
}
#define swap3(a, b) \
{ \
a = a + b; \
b = a - b; \
a = a - b; \
}
#define swap4(a, b) \
{ \
a = a ^ b; \
b = a ^ b; \ A和B异或的结果在和B异或,得到B本身
a = a ^ b; \
}
int main()
{
int a = 0;
int b = 1;
//第一种,指针
// swap(&a, &b);
//第二种,宏定义+接续符
// swap2(a, b);
//第三种 宏定义(优点是没有外加参数,但是这种不好,a+b很容易超范围)
// swap3(a, b);
//第四种,异或
swap4(a, b);
printf("%d, %d", a, b);
return 0;
}