0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

傳值、傳址、傳引用的區(qū)別,哪個更高效?

如意 ? 來源:CSDN ? 作者:cherrydreamsover ? 2020-06-29 15:05 ? 次閱讀

傳值、傳址、傳引用的區(qū)別,哪個更高效?

1.傳值

這種傳遞方式中,實參和形參是兩個不同的地址空間,參數(shù)傳遞的實質(zhì)是將原函數(shù)中變量的值,復(fù)制到被調(diào)用函數(shù)形參所在的存儲空間中,這個形參的地址空間在函數(shù)執(zhí)行完畢后,會被回收掉。整個被調(diào)用函數(shù)對形參的操作,只影響形參對應(yīng)的地址空間,不影響原來函數(shù)中的變量的值,因為這兩個不是同一個存儲空間。

即使形參的值在函數(shù)中發(fā)生了變化,實參的值也完全不會受到影響,仍為調(diào)用前的值。

2.傳址

這種參數(shù)傳遞方式中,實參是變量的地址,形參是指針類型的變量,在函數(shù)中對指針變量的操作,就是對實參(變量地址)所對應(yīng)的變量的操作,函數(shù)調(diào)用結(jié)束后,原函數(shù)中的變量的值將會發(fā)生改變。

被調(diào)用函數(shù)中對形參指針?biāo)赶虻牡刂分袃?nèi)容的任何改變都會影響到實參。

3.傳引用

這種參數(shù)傳遞方式中,形參是引用類型變量,其實就是實參的一個別名,在被調(diào)用函數(shù)中,對引用變量的所有操作等價于對實參的操作,這樣,整個函數(shù)執(zhí)行完畢后,原先的實參的值將會發(fā)生改變。

被調(diào)函數(shù)對形參做的任何操作都影響了主調(diào)函數(shù)中的實參變量。

4.哪一種更高效?

在內(nèi)置類型當(dāng)中三種傳遞方式的效率上都差不多;

在自定義類型當(dāng)中,傳引用的更高效一些,因為它沒有對形參進(jìn)行一次拷貝

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1728

    瀏覽量

    31980
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4256

    瀏覽量

    62223
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2090

    瀏覽量

    73404
收藏 人收藏

    評論

    相關(guān)推薦

    VI 間,,當(dāng)生成EXE時 不行,,

    VI 間,開發(fā)環(huán)境可以*附件:VI間其中一個為EXE時.rar,當(dāng)生成EXE時 不行,,
    發(fā)表于 03-22 11:52

    SIM800C的透模式的問題

    據(jù),產(chǎn)生>。 如果發(fā)送AT+CIPSEND,發(fā)送完數(shù)據(jù),還要發(fā)送0x1a如果發(fā)送AT+CIPSEND=10,就說可以發(fā)送10個字節(jié)的數(shù)據(jù)。 這和我理解的透區(qū)別,我理解的應(yīng)該完全透,不用發(fā)
    發(fā)表于 10-24 18:14

    詳解父組件向子組件與非父子組件

    父子組件,非父子組件,作用域插槽
    發(fā)表于 02-22 08:17

    什么是透?

    的概念透概念具體到此次實踐
    發(fā)表于 12-24 07:13

    uboot是怎么參給內(nèi)核的?

    uboot是怎么參給內(nèi)核的?linux怎么進(jìn)行內(nèi)存管理?進(jìn)程和線程的區(qū)別是什么
    發(fā)表于 02-24 07:56

    什么是藍(lán)牙透

    一.什么是藍(lán)牙透?透是最簡單也是最常見的通訊方式(如下圖所示),透也叫串口透,就是透明傳輸?shù)囊馑?,?b class='flag-5'>傳是一種工作方式,不是一種功能,
    發(fā)表于 12-06 06:15

    JavaScript讓HTML靜態(tài)頁面的方法

    JavaScript讓HTML靜態(tài)頁面的方法有四種:1、JavaScript通過URL。2、JavaScript通過Cookie
    發(fā)表于 01-09 15:24 ?5858次閱讀
    JavaScript讓HTML靜態(tài)頁面<b class='flag-5'>傳</b><b class='flag-5'>值</b>的方法

    PHP中賦值和引用賦值的詳細(xì)資料詳解

    本文檔的主要內(nèi)容詳細(xì)介紹的是PHP中賦值和引用賦值的詳細(xì)資料詳解。
    發(fā)表于 03-06 17:04 ?5次下載
    PHP中<b class='flag-5'>傳</b><b class='flag-5'>值</b>賦值和<b class='flag-5'>引用</b>賦值的詳細(xì)資料詳解

    C語言函數(shù)中的指針到底有什么區(qū)別

    我們可能聽過C語言中的指針,在其他語言中,也有引用一說,那么他們到底有什么區(qū)別呢?如果
    的頭像 發(fā)表于 09-08 10:14 ?4993次閱讀

    頁面之間如何進(jìn)行詳細(xì)方法

    本文檔的主要內(nèi)容詳細(xì)介紹的是頁面之間如何進(jìn)行詳細(xì)方法。
    發(fā)表于 10-23 17:20 ?5次下載
    頁面之間如何進(jìn)行<b class='flag-5'>傳</b><b class='flag-5'>值</b>詳細(xì)方法

    C語言函數(shù)參數(shù)關(guān)于指針有什么區(qū)別?

    C語言函數(shù)參數(shù)的指針有什么區(qū)別
    的頭像 發(fā)表于 02-26 16:35 ?2138次閱讀

    遠(yuǎn)變送器的原理及特點

    遠(yuǎn)變送器是干簧管遠(yuǎn)變送器的簡稱。遠(yuǎn)變送器,一般是作為磁翻板液位計的配件使用的,二者配套使用的磁翻板液位計,也稱遠(yuǎn)磁翻板液位計。為使儀表用戶對遠(yuǎn)
    的頭像 發(fā)表于 06-29 15:19 ?6577次閱讀
    遠(yuǎn)<b class='flag-5'>傳</b>變送器的原理及特點

    為什么需要無線回 Wi-Fi回有哪些應(yīng)用

    你聽過回么? 回是指網(wǎng)絡(luò)中的一段傳輸路徑,用于將兩個網(wǎng)絡(luò)連接起來,數(shù)據(jù)可以通過回網(wǎng)絡(luò),在不同的網(wǎng)絡(luò)間往返傳輸。根據(jù)網(wǎng)絡(luò)介質(zhì)的不同,可以分為有線回(光纖)和無線回
    的頭像 發(fā)表于 08-12 15:16 ?1.3w次閱讀

    輕松搞懂透和非透區(qū)別

    和非透是數(shù)據(jù)通信中的兩種不同模式,各自有其適用場景和優(yōu)勢。透模式簡單、高效,適用于數(shù)據(jù)完整性要求高的場景;非透模式則通過數(shù)據(jù)處理提
    的頭像 發(fā)表于 06-05 12:03 ?7425次閱讀
    輕松搞懂透<b class='flag-5'>傳</b>和非透<b class='flag-5'>傳</b>的<b class='flag-5'>區(qū)別</b>

    網(wǎng)絡(luò)透和非透是什么區(qū)別是什么

    :適用簡易、立即的數(shù)據(jù)傳輸,留意數(shù)據(jù)的完整性和低延遲。非透:適用必須進(jìn)行數(shù)據(jù)解決優(yōu)化的狀況,提供良好的可靠性和效果。 在挑選傳輸技術(shù)時,務(wù)必根據(jù)實際的業(yè)務(wù)需求、數(shù)據(jù)種類、安全規(guī)定和傳輸效率等要素開展考量。
    的頭像 發(fā)表于 08-07 16:19 ?506次閱讀