问题描述:
在C语言中要进行变量的值的交换,我们首先想到的是借助第三变量,其实还有两个方法。
<1>借助第三变量
<2>交换数值
<3>利用位操作 ^
void exchange1(int i,int j) //借助第三变量
{
int temp;
temp = i;
i = j;
j = temp;
printf("%d,%d",i,j);
}
void exchange2(int i,int j) // 交换数值
{
i = i+j;
j = i-j;
i = i-j;
printf("%d,%d",i,j);
}
void exchange3(int i,int j) //逻辑异或操作
{
i = i^j;
j = i^j;
i = i^j;
printf("%d,%d",i,j);
}
应注意:在封装成为函数后,交换两个变量值的时候,应使用指针void swap(int *pa, int *pb)
{
int tmp = 0;
tmp = *pa;
*pa = *pb;
*pb = tmp;
}