将A,B的值进行交换
c++
#include <stdio.h>
#define swap(x,y) x^bai=y^=x^=y
void Swap(int &a,int &b)
{
a = a + b;
b = a - b;
a = a - b;
}
int main()
{
int a,b;
printf("输入第duzhi1个数\n");
scanf("%d",&a);
printf("输入第2个数\n");
scanf("%d",&b);
swap(a,b);
printf("交换后%d %d\n",a,b);
Swap(a,b);
printf("交换回来bai%d %d\n",a,b);
return 0;
}
两种方法。
1、#define swap(x,y) x^=y^=x^=y
2、a+b->a;a-b->b;a-b->a
A=A^B
B=A^B
A=A^B
交换a,b值的三种方法
给定两个数a=10,b=20交换a与b的值的三种方法
1、首先第一种是我们最容易想到的,定义一个空tmp,用其交换,在三个数按从小到大(或从大到小)排序输出时曾用到过
2、第二种方法,用加减法来交换a,b,是比较好的方法
3、第三种方法是使用指针(传指针,解引用)进行交换,交换的是a,b的地址
交换前a,b的地址
交换后a,b的地址
下面为第三种方法的源代码
利用以上三种方法都能成功交换a,b的值
摘抄自网络,便于检索查找。