欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c語言swap(a,b)值交換的4種實現(xiàn)方法

 更新時間:2013年02月25日 11:22:58   作者:  
c語言swap(a,b)值交換的4種實現(xiàn)方法,這么好的東西,盡管簡單,但值得發(fā)表,以此共享。

這篇文章所要表述的內(nèi)容的確很簡單,寫之前,我糾結(jié)了很久:寫與不寫。平常swap(a,b)值交換,我們基本都是使用第一種方法,對于數(shù)學(xué)較好的人,可能會想到第二種方法,想到時,一定感覺很好,。對于匯編或?qū)ξ挥欣斫獾娜耍赡軙氲降谌N方法,這個方法很妙。但,真正促使我寫這篇文章的,還是第四種方法,妙,真的很妙,先(b = a),我是真沒想到,我想,這么好的東西,盡管簡單,但值得發(fā)表,以此共享。

swap(a,b)值交換的四種方法:

復(fù)制代碼 代碼如下:

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; 

結(jié)果:

before swap: a = 3, b = 4

after swap: a = 4, b = 3


關(guān)于傳參方式有三種:值傳參、地址傳參、引用傳參(C++方法),上面使用的是第三種,引用傳參,因為這種傳參方式使得swap里面實現(xiàn)更為直觀。當(dāng)然,也可以使用第二種傳參方式地址傳參,不過,值傳參是不行的哦。

相關(guān)文章

  • C++中指針的引用*&的具體使用

    C++中指針的引用*&的具體使用

    本文主要介紹了C++中指針的引用*&的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++面試題之?dāng)?shù)a、b的值互換(不使用中間變量)

    C++面試題之?dāng)?shù)a、b的值互換(不使用中間變量)

    這篇文章主要介紹了不使用中間變量,C++實現(xiàn)數(shù)a、b的值互相轉(zhuǎn)換操作,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C語言基礎(chǔ)隱式類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換示例解析

    C語言基礎(chǔ)隱式類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換示例解析

    最接地氣的有關(guān)類型轉(zhuǎn)換的介紹,此處對于類型轉(zhuǎn)換的相關(guān)知識點(diǎn)做一些簡要的介紹,作者實屬初學(xué),難免文章中有內(nèi)容理解不到位或者有不當(dāng)之處,還請朋友們不吝指正,希望大家多多給予支持
    2021-11-11
  • C++實現(xiàn)簡單信息管理系統(tǒng)

    C++實現(xiàn)簡單信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡單信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言Make命令用法講解

    C語言Make命令用法講解

    本文詳細(xì)講解了C語言Make命令用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 淺談C#中List<T>對象的深度拷貝問題

    淺談C#中List<T>對象的深度拷貝問題

    下面小編就為大家?guī)硪黄獪\談C#中List<T>對象的深度拷貝問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++11語法之右值引用的示例講解

    C++11語法之右值引用的示例講解

    右值引用,一般是在深拷貝的類,實現(xiàn)移動構(gòu)造和移動賦值,能夠解決左值引用無法做到的傳返回值的效率問題,下面跟隨小編一起學(xué)習(xí)下C++11語法之右值引用的問題
    2022-04-04
  • C++圖論之Bellman-Ford算法和SPFA算法的實現(xiàn)

    C++圖論之Bellman-Ford算法和SPFA算法的實現(xiàn)

    貝爾曼-福特算法(Bellman-Ford)是由理查德·貝爾曼和萊斯特·福特創(chuàng)立的,求解單源最短路徑問題的一種算法。SPFA 算法是 Bellman-Ford算法 的隊列優(yōu)化算法的別稱,通常用于求含負(fù)權(quán)邊的單源最短路徑。本文將詳解兩個算法的實現(xiàn),需要的可以參考一下
    2022-06-06
  • C++數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹的實現(xiàn)

    C++數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹的實現(xiàn)

    了解搜索二叉樹是為了STL中的map和set做鋪墊,我們所熟知的AVL樹和平衡搜索二叉樹也需要搜索二叉樹的基礎(chǔ)。本文將詳解如何利用C++實現(xiàn)搜索二叉樹,需要的可以參考一下
    2022-05-05
  • C++?setw()函數(shù)的具體使用

    C++?setw()函數(shù)的具體使用

    本文主要介紹了C++?setw()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論