这个我做过专门的总结:
方法一:利用数学运算的技巧
- 2 int main()
- 3 {
- 4
- 5 int a =10, b = 20;
- 6
- 7 printf("交换前a=%d, b=%d\n", a, b);
- 8
- 9 a = a - b;
- 10 b = a + b;
- 11 a = b - a;
- 12
- 13 printf("交换后a=%d, b=%d\n", a, b);
- 14
- 15 return 0;
- 16 }
复制代码
这种方法的写法不唯一,对于a,b;只要先给其中一个先赋予a-b,其他的自己算一下就能写出来;
方法二:异或运算的特点:a^b^a = a^a^b = 0^b = b,交换律,相同数值异或为0,0和任何数异或为任何数
- 2 int main()
- 3 {
- 4 int a =10, b = 20;
- 5 printf("交换前a=%d, b=%d\n", a, b);
- 6
- 7 a = a^b;
- 8 b = b^a;
- 9 a = a^b;
- 10
- 11 printf("交换后a=%d, b=%d\n", a, b);
- 12
- 13 return 0;
- 14 }
复制代码
第三方变量的方法,就很简单了,也是最长用得;掌握了第三方变量的方法,基本就行了;
楼主可以看看我的博客里写的:http://www.cnblogs.com/cxbblog/p/3704899.html
|