1、建立一个临时变量;
这种方法,只能在函数内部进行交换,当函数执行完毕时,原来的值不改变
①可以交换
int main()
{
int a=10;
int b=20;
int tmp=a;
a=b;
b=tmp;
printf("%d,%d",a,b);
}
②交换失败
void Swap1(int a,int b)
{
int tmp=a;
a=b;
b=tmp;
}
int main()
{
int a=10;
int b=20;
Swap(a,b);
printf("%d,%d",a,b);
}
2、通过a+b,在相减
int main()
{
int a=10;
int b=20;
a=a+b;
b=a-b;
a=a-b;
printf("%d,%d",a,b);
}
3、位运算方法
int main()
{
int a=10;
int b=20;
a=a^b;
b=a^b;
a=a^b;
printf("%d,%d",a,b);
}
4、指针,弥补第一种方法的缺陷,通过传地址改变原值,可以成功交换两个数的值;
void Swap2(int *a,int *b)
{
int tmp=*a;
*a=*b;
*b=tmp;
}
int main()
{
int a=10;
int b=20;
Swap(&a,&b);
printf("%d,%d",a,b);
}