日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

值传递 引用传递(传地址,传引用)的区别

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 值传递 引用传递(传地址,传引用)的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 傳值 ??
??是把實參的值賦值給行參? ?
??那么對行參的修改,不會影響實參的值? ?
? ??
??傳地址? ?
??是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int? ?
??那么傳地址以后,實參和行參都指向同一個對象? ?
? ??
??傳引用? ?
??真正的以地址的方式傳遞參數? ?
??傳遞以后,行參和實參都是同一個對象,只是他們名字不同而已? ?
??對行參的修改將影響實參的值

-----------------------------------------------------------------------------------

覺得從函數調用的角度理解比較好? ?
? ??
??傳值:? ?
??函數參數壓棧的是參數的副本。? ?
??任何的修改是在副本上作用,沒有作用在原來的變量上。? ?
? ??
??傳指針:? ?
??壓棧的是指針變量的副本。? ?
??當你對指針解指針操作時,其值是指向原來的那個變量,所以對原來變量操作。? ?
? ??
??傳引用:? ?
??壓棧的是引用的副本。由于引用是指向某個變量的,對引用的操作其實就是對他指向的變量的操作。(作用和傳指針一樣,只是引用少了解指針的草紙)??

-----------------------------------------------------------------------------------
函數參數傳遞機制的基本理論? ?
??  函數參數傳遞機制問題在本質上是調用函數(過程)和被調用函數(過程)在調用發生時進行通信的方法問題。基本的參數傳遞機制有兩種:值傳遞和引用傳遞。以下討論稱調用其他函數的函數為主調函數,被調用的函數為被調函數。? ?
??  值傳遞(passl-by-value)過程中,被調函數的形式參數作為被調函數的局部變量處理,即在堆棧中開辟了內存空間以存放由主調函數放進來的實參的值,從而成為了實參的一個副本。值傳遞的特點是被調函數對形式參數的任何操作都是作為局部變量進行,不會影響主調函數的實參變量的值。? ?
??  引用傳遞(pass-by-reference)過程中,被調函數的形式參數雖然也作為局部變量在堆棧中開辟了內存空間,但是這時存放的是由主調函數放進來的實參變量的地址。被調函數對形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調函數中的實參變量。正因為如此,被調函數對形參做的任何操作都影響了主調函數中的? ?
??實參變量。? ?


-----------------------------------------------------------------------------------

僅討論一下值傳遞和引用傳遞:? ?
??所謂值傳遞,就是說僅將對象的值傳遞給目標對象,就相當于copy;系統將為目標對象重新開辟一個完全相同的內存空間。? ?
??所謂引用,就是說將對象在內存中的地址傳遞給目標對象,就相當于使目標對象和原始對象對應同一個內存存儲空間。此時,如果對目標對象進行修改,內存中的數據也會改變。

?

轉自:http://www.cnitblog.com/guopingleee/archive/2009/02/16/54597.html

轉載于:https://www.cnblogs.com/xuewangkai/p/11152377.html

總結

以上是生活随笔為你收集整理的值传递 引用传递(传地址,传引用)的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。