标题
给定两个整型变量的值,将两个值的内容进行交换(3种方法)
方法1:交换变量法
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 1;
int b = 2;
int c = 0;///引入一个中间变量c
c = b;
b = a;
a = c;
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
方法2:加减数字法
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 1;
int b = 2;
a = a + b;
b = a - b;///这里b=a+b-b=a
a = a - b;///这里a=a+b-a=b
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
方法3:异或法
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 1;
int b = 2;
a = a ^ b;
b = a ^ b;///这里b=a^b^b=a
a = a ^ b;///这里a=a^b^a=b
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
三种方法的打印结果都是
a = 2
b = 1
其实第二种和第三种的本质是一样的,而且这两种方法都没有创建临时变量。