前言:在不用第三个变量前提下,交换两个变量.
1. 我们用最原始的引入第三个变量,来求解.
#include<stdio.h>
int main()
{
int a=2;
int b=3;
int temp=0;
temp=a;
a=b;
b=temp;
printf("a=%d ,b=%d\n",a,b);
return 0;
}
2.利用加减法,而不引入第三变量.
#include<stdio.h>
int main()
{
int a=2;
int b=3;
a=a+b;
b=a-b;
a=a-b;
printf("a=%d ,b=%d\n",a,b);
return 0;
}
注意: 加减法有bug,在int 类型下,只有四个字节,四个字节32位,若超出32位,则会溢出.
3.采用位运算.
#include<stdio.h>
int main()
{
int a=2;
int b=3;
a=a^b;
b=a^b;
a=a^b;
printf("a=%d ,b=%d\n",a,b);
return 0;
}
注意 : 采用位运算, ^ 为异或运算,相同为0,不同为1.