1.建立tmp临时变量(最易理解,使用最多)
int main()
{
int a=10;
int b=20;
int tmp=a;
a=b;
b=tmp;
printf("%d,%d",a,b);
}
缺陷:无法把子函数中进行交换的值传递到父函数中,例如
void Swap(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);
}
这段代码中的a与b的值打印出来之后并没有进行交换,还是10与20
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.通过指针传递a与b的地址从而进行赋值,与第一种方法类似,但没有缺陷
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);
}
4.通过位运算进行交换
int main()
{
int a=10;
int b=20;
a=a^b;
b=a^b;
a=a^b;
printf("%d,%d",a,b);
}