C++引入了引用這個(gè)類型,引用實(shí)際是給變量起了一個(gè)別名,實(shí)際上,引用只是別名沒有獨(dú)立的內(nèi)存空間,和它所引用的變量共享內(nèi)存空間。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)林口,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108變量的屬性有兩種:名稱和空間。
而引用只有名稱沒有獨(dú)立的空間。
對(duì)引用的改變就是對(duì)它所引用的變量的改變。
格式:int a = 1; int& b = a;
Δ定義引用時(shí)一定要初始化,指明該引用變量是誰的別名。
Δ引用一經(jīng)初始化不能重新指向其他變量。
實(shí)際引用中,引用一般用作參數(shù)傳遞與返回值。
- # include <iostream>
- usingnamespace
- intvoid
- int
- //定義引用
- int//引用必須初始化
- //int& refval; error 引用必須初始化
- "val = "
- //實(shí)際上改變的是val變量
- "refval = "//結(jié)果是200
- int
- //這只是簡(jiǎn)單的賦值,不代表refval引用至val2這個(gè)變量
- "val2 = "//500
- return
運(yùn)行結(jié)果:
const引用,指向const對(duì)象的引用
const int ival = 1024; const int& refval = ival;
Δ普通變量引用const變量是非法的
const int ival = 1024; int& refval = ival ; //error
Δconst變量引用普通變量是合法的。
- # include<iostream>
- usingnamespace
- intvoid
- constint
- constint
- // int& ref2 = val; error,nonconst reference to a const object
- "refval = "
- int
- constint//允許的
- //ref3 = 200; 錯(cuò)誤的,不能更改const常量
- "ref3 = "
- double
- //warning C4244: “初始化”: 從“double”轉(zhuǎn)換到“const int”,可能丟失數(shù)據(jù)
- constint//等價(jià)于產(chǎn)生了一個(gè)臨時(shí)變量,int temp = val3; const int& ref4 = temp
- "val3 = "
- "ref4 = "
- // int& ref5 = val3; 非const不能引用double類型的變量
- return
運(yùn)行結(jié)果:
引用做函數(shù)參數(shù)傳遞:
- //按引用傳遞
- //swap(int &a, int &b);
- //C語言里面:
- // 值傳遞 形參不能更改實(shí)參
- // 指針傳遞
- //地址傳遞方式通過形參的改變使相應(yīng)的實(shí)參改變
- //引用傳遞也是可以的
- //引用作為參數(shù)傳遞
- # include <iostream>
- usingnamespace
- voidintint
- intvoid
- int
- int
- "交換前""a = "" b = "
- //在函數(shù)調(diào)用的時(shí)候,引用被初始化 , x = a ,y = b
- "交換后""a = "" b = "
- return
- voidintint//形參是引用,調(diào)用的時(shí)候被初始化
- int
運(yùn)行結(jié)果:
下面總結(jié)下引用于指針的區(qū)別:
引用訪問一個(gè)變量是直接訪問,
指針是間接訪問
引用只是別名,本身不分配內(nèi)存空間
指針本身就是一個(gè)變量,有自己的內(nèi)存空間
引用一經(jīng)初始化就不能再引用其他變量,
指針初始化后引用其他變量,除非const
值傳遞的時(shí)候,實(shí)參要初始化形參,就好分配一個(gè)形參變量,將實(shí)參內(nèi)容拷貝到形參
如果是類傳遞的話,還要調(diào)用拷貝函數(shù)
指針傳遞 實(shí)參初始化形參的時(shí)候也是要分配空間的,
引用傳遞 實(shí)參初始化形參時(shí)不分配空間,效率會(huì)高點(diǎn)
指針傳遞 本質(zhì)還是值傳遞,如果要修改指針的地址,單純用指針傳遞也不能的
僅僅修改指針指向的內(nèi)容,**,指針引用*&
引用作為函數(shù)返回值:
- //引用作為返回值,將函數(shù)放在賦值運(yùn)算符的左邊
- # include <iostream>
- usingnamespace
- int
- intint
- return
- //函數(shù)返回引用,引用在函數(shù)返回的時(shí)候初始化
- //index(3) 在函數(shù)返回的時(shí)候被初始化為a[3]
- intvoid
- //引用作為函數(shù)返回值,使得函數(shù)可以放在運(yùn)算符的左邊
- "a[3] = "//100
- return
運(yùn)行結(jié)果:
不能返回對(duì)局部變量的引用,或自動(dòng)化變量的引用:
運(yùn)行結(jié)果:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:C++引用的學(xué)習(xí)-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article42/pdcec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、軟件開發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容