首頁 >常見問題 >傳值和傳址的差別是什麼

傳值和傳址的差別是什麼

coldplay.xixi
coldplay.xixi原創
2021-02-25 11:32:2015071瀏覽

傳值和傳址的區別:1、在傳值中函數參數壓棧的是參數的副本,任何的修改是在副本上作用,沒有作用在原來的變數上;2、傳址中壓棧的是指標變數的副本,當你對指標解指標操作時,其值是指向原來的變數。

傳值和傳址的差別是什麼

本文操作環境:Windows7系統,Dell G3電腦。

傳值和傳址的區別:

1、在傳值中函數參數壓棧的是參數的副本,任何的修改是在副本上作用,沒有作用在原來的變數上。   

2、傳址中壓棧的是指標變數的副本,當你對指標解指標運算時,其值是指向原來的那個變量,所以對原來變數運算。   

傳值和傳址的差別是什麼

擴充資料

函數傳參有三種傳參方式:傳值、傳址、傳引用。

1、按值傳遞

(1)形參和實參各佔一個獨立的儲存空間。

(2)形參的儲存空間是函數被呼叫時才分配的,呼叫開始,系統為形參闢一個臨時的儲存區,然後將各實參傳遞給形參,這是形參就得到了實參的值。

2、位址傳遞

位址傳遞與值傳遞的不同在於,它把實參的儲存位址傳送給形參,使得形參指標和實參指標指向同一塊位址。因此,被呼叫函數中對形參指標所指向的位址中內容的任何變更都會影響到實參。

3、引用傳遞

引用傳遞是以引用為參數,則既可以使得對形參的任何操作都能改變相應數據,又使函數呼叫方便。引用傳遞是在形參呼叫前加入引用運算子“&”。

引用為實參的別名,和實參是同一個變量,則他們的值也相同,該引用改變則它的實參也改變。

相關免費推薦:#程式設計影片課程

以上是傳值和傳址的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn