手机
当前位置:查字典教程网 >编程开发 >C语言 >c语言swap(a,b)值交换的4种实现方法
c语言swap(a,b)值交换的4种实现方法
摘要:这篇文章所要表述的内容的确很简单,写之前,我纠结了很久:写与不写。平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人...

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

swap(a,b)值交换的四种方法:

复制代码 代码如下:

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 = %dn", a, b);

swap(a, b);

printf("after swap: a = %d, b = %dn", a, b);

return 0;

}

结果:

before swap: a = 3, b = 4

after swap: a = 4, b = 3

关于传参方式有三种:值传参、地址传参、引用传参(C++方法),上面使用的是第三种,引用传参,因为这种传参方式使得swap里面实现更为直观。当然,也可以使用第二种传参方式地址传参,不过,值传参是不行的哦。

【c语言swap(a,b)值交换的4种实现方法】相关文章:

C++ 关于STL中sort()对struct排序的方法

解析在WTL下使用双缓冲的实现方法

用c语言实现冒泡排序,选择排序,快速排序

哈夫曼的c语言实现代码

解析在Direct2D中画Bezier曲线的实现方法

基于C语言string函数的详解

linux之sort命令的用法

给ActiveX签名的实现方法详解

Reactor反应器的实现方法详解

c语言中static的用法详细示例分析

精品推荐
分类导航