欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++中引用傳遞與指針傳遞有什么不同

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)C++中引用傳遞與指針傳遞有什么不同,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為湘潭企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,湘潭網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1. 概念

指針從本質(zhì)上講是一個變量,變量的值是另一個變量的地址,指針在邏輯上是獨立的,它可以被改變的,包括指針變量的值(所指向的地址)和指針變量的值對應(yīng)的內(nèi)存中的數(shù)據(jù)(所指向地址中所存放的數(shù)據(jù))。

引用從本質(zhì)上講是一個別名,是另一個變量的同義詞,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化(先有這個變量,這個實物,這個實物才能有別名),而且其引用的對象在其整個生命周期中不能被改變,即自始至終只能依附于同一個變量(初始化的時候代表的是誰的別名,就一直是誰的別名,不能變)。

2. C++中的指針參數(shù)傳遞和引用參數(shù)傳遞

指針參數(shù)傳遞本質(zhì)上是值傳遞,它所傳遞的是一個地址值。值傳遞過程中,被調(diào)函數(shù)的形式參數(shù)作為被調(diào)函數(shù)的局部變量處理,會在棧中開辟內(nèi)存空間以存放由主調(diào)函數(shù)傳遞進(jìn)來的實參值,從而形成了實參的一個副本(替身)。值傳遞的特點是,被調(diào)函數(shù)對形式參數(shù)的任何操作都是作為局部變量進(jìn)行的,不會影響主調(diào)函數(shù)的實參變量的值(形參指針變了,實參指針不會變)。

引用參數(shù)傳遞過程中,被調(diào)函數(shù)的形式參數(shù)也作為局部變量在棧中開辟了內(nèi)存空間,但是這時存放的是由主調(diào)函數(shù)放進(jìn)來的實參變量的地址。被調(diào)函數(shù)對形參(本體)的任何操作都被處理成間接尋址,即通過棧中存放的地址訪問主調(diào)函數(shù)中的實參變量(根據(jù)別名找到主調(diào)函數(shù)中的本體)。因此,被調(diào)函數(shù)對形參的任何操作都會影響主調(diào)函數(shù)中的實參變量。

引用傳遞和指針傳遞是不同的,雖然他們都是在被調(diào)函數(shù)??臻g上的一個局部變量,但是任何對于引用參數(shù)的處理都會通過一個間接尋址的方式操作到主調(diào)函數(shù)中的相關(guān)變量。而對于指針傳遞的參數(shù),如果改變被調(diào)函數(shù)中的指針地址,它將應(yīng)用不到主調(diào)函數(shù)的相關(guān)變量。如果想通過指針參數(shù)傳遞來改變主調(diào)函數(shù)中的相關(guān)變量(地址),那就得使用指向指針的指針或者指針引用。

從編譯的角度來講,程序在編譯時分別將指針和引用添加到符號表上,符號表中記錄的是變量名及變量所對應(yīng)地址。指針變量在符號表上對應(yīng)的地址值為指針變量的地址值,而引用在符號表上對應(yīng)的地址值為引用對象的地址值(與實參名字不同,地址相同)。符號表生成之后就不會再改,因此指針可以改變其指向的對象(指針變量中的值可以改),而引用對象則不能修改。

3. 總結(jié)

相同點:

都是地址的概念

不同點:

指針是一個實體(替身);引用只是一個別名(本體的另一個名字)

引用只能在定義時被初始化一次,之后不可改變,即“從一而終”;指針可以修改,即“見異思遷”;

引用不能為空(有本體,才有別名);指針可以為空;

sizeof 引用,得到的是所指向變量的大?。籹izeof 指針,得到的是指針的大??;

指針 ++,是指指針的地址自增;引用++是指所指變量自增;

引用是類型安全的,引用過程會進(jìn)行類型檢查;指針不會進(jìn)行安全檢查;

補(bǔ)充:C語言的引用傳遞方法

#include
#include
int main(int argc, const char * argv[]){
double pi = 3.14;
double intgerPart;
double fractionPart;
fractionPart = modf(pi, &intgerPart);
printf("Pi's Interger Part is %.0f, and Pi's fraction part is %.2f \n", intgerPart, fractionPart);
return 0;
}
Result:
Pi's Interger Part is 3, and Pi's fraction part is 0.14
Program ended with exit code: 0

上述就是小編為大家分享的C++中引用傳遞與指針傳遞有什么不同了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:C++中引用傳遞與指針傳遞有什么不同
當(dāng)前路徑:http://aaarwkj.com/article40/gghheo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈定制開發(fā)、靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化建站公司、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
亚洲成人黄色片在线观看| 偷窥偷拍原味一区二区三区| 日韩电影一区二区在线观看中文字幕 | 欧美日韩国产天堂一区| 日韩有码高清av在线| 欧洲一区二区在线激情| 婷婷激情亚洲综合综合久久| 日本av高清视频在线观看| 久久亚洲中文字幕精品熟女一区| 亚洲国产日韩一区二区在线| 国产黄色一区二区三区| 国产免费av一区二区在线观看| 国产尤物直播在线观看| 美女张开腿让男人插进去 | 亚洲欧美成人免费视频| 国产精品久久中文字幕网| 天天操夜夜操狠狠操91| 丰满人妻中出av在线| 亚洲欧美高清一区二区| 成人激情电影免费在线| 亚洲性感人妻系列网站| 日本欧美三级一二三区| 欧美日韩一区二区黄色| 国产又黄又粗的视频| 中文字幕一区二区精品人妻| 国产一区二区主播不卡| 成人久久精品一区二区| 中文国产人精品久久蜜桃| 精品偷拍污视频一区二区| 亚洲精品尤物福利视频| 日本免费精品一区二区三区四区| 亚洲欧美国产在线日韩| 欧美日韩精品免费在线观看| 亚洲成在人线天堂网站| 日本特黄特色三级在线观看| 国产我和子的乱视频亲生| 怡红院怡春院视频免费看| 亚洲乱色熟女一区二区三区麻豆| 激情视频一区二区三区| 七十二式性日韩视频| 免费av男人天堂亚洲天堂|