c语言swap(a,b)值交换的4种实现方法

来源:互联网 发布:windows7怎样优化电脑 编辑:程序博客网 时间:2024/05/23 02:11

转载原文地址:http://www.jb51.net/article/34240.htm

平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对位有理解的人,可能会想到第三种方法,这个方法很妙。但,真正促使我写这篇文章的,还是第四种方法,妙,真的很妙,先(b = a),我是真没想到,我想,这么好的东西,尽管简单,但值得发表,以此共享。

void swap(int &a, int &b)  {      //方法一:       int tmp = 0;      tmp = b;      b = a;      a = tmp;      //方法二:       //a = a+b;       //b = a-b;       //a = a -b;       //方法三:       //a ^= b ^= a ^= b;       //方法四:       //a = a+b-(b=a);   }  int main(void)  {      int a = 3;      int b = 4;      printf("before swap: a = %d, b = %d\n", a, b);      swap(a, b);      printf("after swap: a = %d, b = %d\n", a, b);      return 0;  } 

结果:
before swap: a = 3, b = 4
after swap: a = 4, b = 3

0 0
原创粉丝点击