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

2016-02-19 11:05 23 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的c语言swap(a,b)值交换的4种实现方法,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

这篇文章所要表述的内容的确很简单,写之前,我纠结了很久:写与不写。平常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; 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

结果:

before swap: a = 3, b = 4

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

after swap: a = 4, b = 3

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

来源:https://www.tulaoshi.com/n/20160219/1596498.html

延伸阅读
标签: 服务器
在Linux系统上使用交换文件扩展swap空间的方法   想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分区了,致使我们不能把它扩大。 因此,在这种情况下,我们可以使用交换文件增加swap空间。 以下是使用交换文件在Linux上扩展s...
1.图像平移 图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。 假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 + dx, y0 + dy),右下角坐标为(x1 + dx, y1 + dy)。坐标平移变换公式为: x′ = x + dx y′ = y + dy...
1.图像平移 图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。 !-- frame contents -- !-- /frame contents -- 假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 +dx, y0+dy),右下角坐标为(x1+dx, y1+dy)。坐标平移变换公...
C语言以其简洁、灵活、表达能力强,产生的目标代码质量高,可移植性好而著称于世。巧妙、灵活地运用C可以进一步挖掘出其潜在的功能。 1、字符数组和字符指针 指针和数组是C最具特色的一部分。数组是占用预分配的连续空间,C语言中对连续空间的访问可以有以下几种方法:加下标构成数组是最直接的;常量字符串也可...
1. 环境 /usr/local/apache/htdocs/ (待检索的文件在该目录下) /usr/local/apache/temp/ (作为中转的文件夹) /usr/local/apache/cgi-bin/ 2. 将gcc search.c产生的a.out放置在/usr/local/apache/cgi-bin/中,权限设置为nobody可 以执行。 3. chown -R nobody.nobody /usr/local/apache/temp 4. 在/etc/cron.d...

经验教程

849

收藏

42
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部