标签:
交换两个变量值,老话题,下面总结的各种方法是。
为了方便,首先定义两个变量。
int a = 1; int b = 2;
int tmp; tmp = a; // tmp = 1 a = b; // a = 2 b = tmp; // b = 1
int *p; p = &a; // tmp->1 a = &b; // a->2 b = p; // b ->1
a = a + b // a = 3 b = a - b // b = 1 a = a - b // a = 2
a = a * b // 2 b = a / b // 2 a = a / b // 1
// a:0000 0001 // b:0000 0010 a = a ^ b // a:0000 0011 b = a ^ b // b:0000 0001 a = a ^ b // a:0000 0010
比較好的是最后一种,内存低层操作(/*通用的各种数据类型*/,这个地方是我弄错,异或仅仅能用于整型, 感谢xiacanni的提醒)。
版权声明:本文博主原创文章。博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/4879018.html