1.两个杯子交换液体,拿第三个杯子做媒介
C语言示例代码:
1 #include<stdio.h> 2 3 int main() 4 { 5 int a=10,b=20; 6 int c; 7 c=a; 8 a=b; 9 b=c; 10 printf("a=%d,b=%d ",a,b); 11 12 return 0; 13 }
2.加减法实现,求和后分别减去自己,完成交换
C语言示例代码:
#include<stdio.h> int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; printf("a=%d,b=%d ",a,b); return 0; }
3.异或运算实现
C语言示例代码:
1 #include<stdio.h> 2 3 int main() 4 { 5 int a=10,b=20; 6 a=a^b; 7 b=a^b; 8 a=a^b; 9 printf("a=%d,b=%d ",a,b); 10 11 return 0; 12 }
重点分析下异或运算法,如下图所示:
第6行:a=a^b;
第7行:a=a^b;
第8行:a=a^b;
实际上,加法内部实现就用的是按位异或。