第一种方法:
定义一个临时变量temp来进行a和b的值交换,代码如下:
#include <stdio.h>
int main ()
{
int a = 5;
int b = 15;
int temp = 0;
printf("初始值: a=%d, b=%d\n",a,b);
temp = a;//temp=5
a = b;//a=15
b = temp;//b=5
printf("交换后: a=%d, b=%d\n",a,b);
return 0;
}
第二种方法:
不定义临时变量,通过利用a和b差值(也可以利用其他运算)进行交换,代码如下:
#include <stdio.h>
int main ()
{
int a = 5;
int b = 15;
printf("初始值: a=%d, b=%d\n",a,b);
a = a-b;//a=-10
b = b+a;//b=5
a = b-a;//a=15
printf("交换后: a=%d, b=%d\n",a,b);
return 0;
}
第三种方法:
不定义临时变量,通过异或(对两个数二进制各个比特位进行异或,相同为0,相异为1)的方法对a和b的值进行交换,代码如下:
#include <stdio.h>
int main ()
{
int a = 5;
int b = 15;
printf("初始值: a=%d, b=%d\n",a,b);
a ^= b;
b ^= a;
a ^= b;
printf("交换后: a=%d, b=%d\n",a,b);
return 0;
}