手机
当前位置:查字典教程网 >编程开发 >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语言 解决不用+、-、×、÷数字运算符做加法的实现方法

基于C中一个行压缩图的简单实现代码

Reactor反应器的实现方法详解

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

利用C语言实现HashTable

c语言中用位运算实现加法技巧介绍

解决C++中重定义的方法总结

给ActiveX签名的实现方法详解

全排列算法的非递归实现与递归实现的方法(C++)

C语言使用stdlib.h库函数的二分查找和快速排序的实现代码

精品推荐
分类导航