#include <stdio.h>
int main()
{
int a = 5;
int b = 3;
printf("a=%d b=%d\n", a, b);
/*
常规交换
int tmp = 0;
tmp = a;
a = b;
b = tmp;*/
// 算术交换
//a = a + b;//此时a是a 和b的合
//b = a - b;//等同于a+b-b,此时b是原来的a
//a = a - b;//等同于a+b-a,此时a是原来的b
//printf("a=%d b=%d\n", a, b);
//因为整形的取值有上限,如果两个整形过大,相加可能溢出丢值
//操作符交换
//异或
//a=011,b=101
a = a ^ b;//a=0 110
b = a ^ b;//b=0 011
a = a ^ b;//a=0 101
printf("a=%d b=%d\n", a, b);
return 0;
}