最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

超詳細(xì)講解C++的三種函數(shù)傳遞方式

 更新時間:2022年05月18日 09:09:32   作者:對象new不出來  
這個文章我將把我學(xué)習(xí)的有關(guān)函數(shù)傳遞形式的知識做個總結(jié),相信很多剛?cè)腴T的同學(xué)看到許多文章五花八門的形參會感到頭疼,但本質(zhì)上無非就是我要說的三種傳遞形式,快來跟我一起學(xué)習(xí)吧

一、值傳遞

代碼如下:

void swap1(int x,int y)
{
	int temp = x;
    x = y; 
    y = temp;
}//main函數(shù)里寫入 swap1(a,b);即可 其中x,y形參  a,b實參

這里我用swap1()交換函數(shù)做舉例,函數(shù)內(nèi)容部分是非常經(jīng)典的三步交換值的代碼,這樣就完成了一個非常簡單的值傳遞函數(shù)。

二、地址傳遞

1.指針的有關(guān)知識

我們經(jīng)常聽到這樣一句話“指針指向地址”,沒錯,指針用來存放變量的地址,這樣可以有效的節(jié)省內(nèi)存空間。例如

int a=6; int *p=&a; cout<<"a的值為:"<<a<<endl; 和cout<<"*p的值為:"<<*p<<endl;

上面兩個輸出結(jié)果都是一樣的,其中p=&a,意為p現(xiàn)在是變量a的地址,而*p就相當(dāng)于*&a,這樣*和&抵消,實際上*p就表示變量a的值

2.地址傳遞舉例

代碼如下:

void swap2(int *x,int *y)
{
	int temp = *x; 
    *x = *y;
    *y = temp;
}//main函數(shù)里寫 swap2(&a,&b) *x和*y為形參,a和b為實參

這里不同于值傳遞的是,傳入實參的時候加上了&符號。因為函數(shù)傳參規(guī)定對應(yīng)的數(shù)據(jù)類型需要一致,所以不難理解*x=&a,*y=&b。

三、引用傳遞

1.引用的相關(guān)知識

示例:int a=10; int &b=a; cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;

上面兩個輸出結(jié)果都是10 其實引用就是給變量起個別名,就比如你小名張三,長大了叫張大仙,當(dāng)你張三18歲了,那么張大仙也18歲,無論改變a還是b,他們兩個的結(jié)果都一樣

2.引用傳遞舉例

代碼如下:

void swap3(int &x,int &y)
{
	int temp = x;
    x = y; 
    y = temp;
}//main 里寫 swap3(a,b)  &x,&y為形參 a,b為實參

這里跟我上面提到的一致,就是 &x=a a的別名為x; 那么x和y的改變就會影響a和b的值,從而完成交換數(shù)據(jù)的任務(wù)

四、三種傳參方式的比較

值傳遞形參不能修飾實參:第一種值傳遞后主函數(shù)a,b的值并沒有發(fā)生改變,因為如果傳的只是變量的值,那么編譯器會拷貝一個副本,只是把a(bǔ),b的值賦給了x和y,很顯然這種方式的a和x的地址不相同,就比如現(xiàn)在有一個香蕉,我利用克隆技術(shù)復(fù)制了一個一模一樣的出來,我把克隆的吃了,那原來的肯定還在,并不影響原來的香蕉。

地址傳遞的形參可以修飾實參,利用指針和引用方法,傳遞的都是變量的地址,所以形參的改變會引起實參的變化。

總結(jié)

以上就是我分享給大家的三種函數(shù)值傳遞方式,我個人推薦多使用引用傳遞,相比于值傳遞他不會產(chǎn)生副本,節(jié)省空間,相比于指針?biāo)男问礁唵?,效果卻一樣,如果有錯誤或者有更好的見解一定私信我,共同進(jìn)步哦

到此這篇關(guān)于超詳細(xì)講解C++的三種函數(shù)傳遞方式的文章就介紹到這了,更多相關(guān)C++函數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++中智能指針的用法詳解

    C/C++中智能指針的用法詳解

    C/C++中,指針是一個非常重要的概念,其強(qiáng)大但也麻煩,麻煩之處就在于一旦你申請了內(nèi)存,那就必須要手動去釋放內(nèi)容,否則就會造成內(nèi)存泄漏。所以智能指針的作用就是防止我們麻痹大意忘記釋放內(nèi)存,幫助我們管理內(nèi)存的,本文就來聊聊智能指針的用法
    2023-01-01
  • android studio創(chuàng)建C++項目的實現(xiàn)示例

    android studio創(chuàng)建C++項目的實現(xiàn)示例

    本文主要介紹了android studio創(chuàng)建C++項目的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • VS2019中CMake項目如何指定c++語言標(biāo)準(zhǔn)

    VS2019中CMake項目如何指定c++語言標(biāo)準(zhǔn)

    這篇文章主要介紹了VS2019中CMake項目如何指定c++語言標(biāo)準(zhǔn),需要的朋友可以參考下
    2020-02-02
  • VC++中HTControl的CHTButton按鈕控件類用法實例解析

    VC++中HTControl的CHTButton按鈕控件類用法實例解析

    這篇文章主要介紹了VC++中HTControl的CHTButton按鈕控件類用法,對于大家進(jìn)行VC++項目開發(fā)有一定的幫助作用,需要的朋友可以參考下
    2014-08-08
  • Linux?C/C++實現(xiàn)網(wǎng)絡(luò)流量分析工具

    Linux?C/C++實現(xiàn)網(wǎng)絡(luò)流量分析工具

    網(wǎng)絡(luò)流量分析的原理基于對數(shù)據(jù)包的捕獲、解析和統(tǒng)計分析,通過對網(wǎng)絡(luò)流量的細(xì)致觀察和分析,幫助管理員了解和優(yōu)化網(wǎng)絡(luò)的性能,本文將通過C++實現(xiàn)網(wǎng)絡(luò)流量分析工具,有需要的可以參考下
    2023-10-10
  • C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng)

    C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • VSCode配置C語言環(huán)境的方法

    VSCode配置C語言環(huán)境的方法

    這篇文章主要介紹了VSCode配置C語言環(huán)境的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言中動態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)解析

    C語言中動態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)解析

    C語言跟內(nèi)存申請相關(guān)的函數(shù)主要有 alloca、calloc、malloc、free、realloc等,下面這篇文章主要給大家介紹了關(guān)于C語言中動態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • C語言獲取消耗內(nèi)存的方法

    C語言獲取消耗內(nèi)存的方法

    這篇文章主要介紹了C語言獲取消耗內(nèi)存的方法,涉及C語言中malloc方法的使用技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • C++中std::optional的使用指南分享

    C++中std::optional的使用指南分享

    C++?17?引入了std::optional,表示一個可能有值的對象,這篇文章主要來和大家聊聊std::optional的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06

最新評論

曲麻莱县| 比如县| 白玉县| 常德市| 民县| 本溪| 包头市| 长武县| 天气| 砀山县| 乐平市| 武隆县| 义马市| 介休市| 新田县| 延庆县| 上杭县| 邻水| 广宁县| 公安县| 芒康县| 武宣县| 资源县| 明光市| 义乌市| 化隆| 柏乡县| 会同县| 界首市| 双流县| 古交市| 曲周县| 永春县| 临朐县| 年辖:市辖区| 汝阳县| 山东| 治多县| 蓝山县| 龙江县| 陕西省|