交换两个变量的值的几种方法
1.临时变量法
int main()
{
int a = 3;
int b = 5;
int t = 0;
printf("交换前:a = %d,b = %d\n",a,b);
t = a;
a = b;
b = t;
printf("交换后:a = %d,b = %d\n",a,b);
system("pause");
return 0;
}
2.加减方法
int main()
{
int a = 3;
int b = 5;
printf("交换前:a = %d,b = %d\n",a,b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后: a = %d,b = %d\n",a,b);
system("pause");
return 0;
}
3.异或方法
//异或的原则:二进制的补码相同为1,不同为0
//000 0 111 7
//111 7 111 7
//111 7^0 = 7 7^7 = 0
int main()
{
int a = 3;
int b = 5;
printf("交换前:a = %d,b = %d\n",a,b);
a = a^b;
b = a^b;
a = a^b;
printf("交换后:a = %d,b = %d\n",a,b);
system("pause");
return 0;
}
4.指针方法
void reverse (int* x,int *y)
{
int tmp = 0;
tmp = *x;
*x = *y;
*y = tmp;
}
int main()
{
int a = 3;
int b = 5;
printf("交换前:a = %d ,c = %d\n",a,b);
reverse(&a,&b);
printf("交换后:a = %d ,c = %d\n",a,b);
return 0;
}