人成在线免费视频|久久久久成人国产免费|亚洲成a人片4444|初尝人妻少妇中文字幕XX|久久综合婷婷噜噜综合网站|粉嫩小泬无遮挡久久久久久|国产精品午夜无码AV天美传媒|欧美日韩专区国产精品一区二区

  • 
    
    <center id="sdblb"></center>
    <style id="sdblb"><meter id="sdblb"></meter></style>
    <source id="sdblb"><optgroup id="sdblb"></optgroup></source>
    <center id="sdblb"></center>
    <sub id="sdblb"></sub>

      <sub id="sdblb"></sub>
        <noscript id="sdblb"><meter id="sdblb"></meter></noscript>
        資訊

        精準(zhǔn)傳達 ? 有效溝通

        從品牌網(wǎng)站建設(shè)到網(wǎng)絡(luò)營銷策劃,從策略到執(zhí)行的一站式服務(wù)

        C++ 中的值傳遞和引用傳遞

        來源:公司資訊 | 2021.08.18

        本文主要介紹C++中的值傳遞(pass-by-value)和引用傳遞(pass-by-reference)的區(qū)別。

        1 pass-by-value

        在 C++ 里面,一個函數(shù)在使用參數(shù)時,如果使用 pass-by-value 方式,那么編譯系統(tǒng)會在調(diào)用該函數(shù)的地方,把實參復(fù)制一份傳給函數(shù)的形參。

        用法示例:int FunA(string strTest);

        這種做法有以下幾個問題:

        第一,如果在函數(shù)里修改傳給函數(shù)的參數(shù)值,實際上我們修改的只是實參的副本,而在調(diào)用函數(shù)的位置,這個實參值本身沒有改變;

        第二,此過程中進行的副本拷貝動作會耗費系統(tǒng)的資源,如果拷貝的參數(shù)是比較復(fù)雜的 struct 或者 class 等類型,復(fù)制出一份副本的成本(時空開銷)很大;

        2 pass-by-reference

        在 C++ 里面,一個函數(shù)在使用參數(shù)時,如果使用 pass-by-reference 方式,那么編譯系統(tǒng)會在調(diào)用該函數(shù)的地方,直接將實參的內(nèi)存地址(指針)傳給形參。

        用法示例:int FunA(string & strTest);

        這種做法有以下幾點好處:

        第一,由于函數(shù)的參數(shù)傳遞的是把實參的地址拷貝給形參,因此形參和實參對應(yīng)的是同一塊內(nèi)存地址,所以對形參的修改自然會反映到實參上;

        第二,在 C++ 中,指針(內(nèi)存地址)是一個 int 類型,所以即使在 64 位系統(tǒng)中,指針的復(fù)制成本(8字節(jié))也是完全可以接受的;

        第三,因為 C++ 規(guī)定引用不能為空,所以在函數(shù)中傳進來引用可以直接使用,而如果傳進來的是指針類型(實際上是值傳遞、引用傳遞之外的指針傳遞方式),那么還需要先判斷指針是否為空,易用性不強。

        3 總結(jié)

        綜合對比上述兩種函數(shù)參數(shù)的值傳遞方式,可以看出在C++中,一般情況下都會優(yōu)先使用“引用傳遞”。

        例如:

        int FunA(const string strTest)  // 值傳遞

        {

            // some codes

        }

         

        int FunB(const string & strTest)    // 引用傳遞,這里加了const關(guān)鍵字,為常引用。優(yōu)選

        {

            // some codes

        }

        ————————————————

        版權(quán)聲明:本文為CSDN博主「liitdar」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

        原文鏈接:https://blog.csdn.net/liitdar/article/details/85982561

         

        —— 靈通云微信公眾號 ——

        熱門標(biāo)簽

        上一條———————

        下一條———————

        十七年 建站經(jīng)驗

        多一份參考,總有益處

        聯(lián)系靈通云,免費獲得專屬《策劃方案》及報價

        咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

        業(yè)務(wù)熱線:400-688-6062 / 大客戶專線   南通:15818561755

        松原市| 内丘县| 高密市| 格尔木市| 珲春市| 通州市| 濮阳市| 天台县| 宾阳县| 石楼县| 望城县| 安龙县| 吕梁市| 吉木乃县| 启东市| 潼关县| 井陉县| 萍乡市| 迁西县| 九龙坡区| 耿马| 绥江县| 白沙| 建平县| 武邑县| 石林| 右玉县| 龙游县| 鱼台县| 武夷山市| 嘉义县| 凤台县| 长汀县| 天峨县| 宿迁市| 谷城县| 湾仔区| 丽水市| 南京市| 蓝田县| 阳山县|