引用的基礎(chǔ)知識(shí) 引入: 變量名,實(shí)際上是一段連續(xù)存儲(chǔ)空間的別名,是一個(gè)標(biāo)號(hào)(門牌號(hào))。 程序中通過(guò)變量來(lái)申請(qǐng)并命名內(nèi)存空間,通過(guò)變量的名字可以使用存儲(chǔ)空間。 問(wèn)題:對(duì)一段連續(xù)的內(nèi)存空間只能取一個(gè)別名嗎? 第一,引用的概念 (1)在C++中新增加了引用的概念; (2)引用可以看作一個(gè)已定義變量的別名 (3)引用的語(yǔ)法:Type& name = var; (4)引用做函數(shù)參數(shù)(引用作為函數(shù)參數(shù)聲明時(shí)不進(jìn)行初始化) 比如,有這么一個(gè)人,我們稱作“姥姥”,也有人稱呼是“外婆”,有人問(wèn)你你姥姥是誰(shuí)?或者問(wèn)你你外婆是誰(shuí)?我們知道這兩個(gè)稱呼指的是同一個(gè)人,你媽給了你姥姥一千塊錢,你姥姥多了一千塊錢,那么你外婆也就多了一千塊錢,你外婆又給了你五百塊錢壓歲錢,那你姥姥也就是少了五百塊錢。姥姥 == 外婆,通過(guò)修改外婆持有的資產(chǎn)數(shù)額,就修改了姥姥持有的資產(chǎn)數(shù)額! 運(yùn)行以下程序,變量a的別名定義為b,我們修改a的值就修改了b的值,修改b的值就修改了a的值。
圖片12.png (24.43 KB, 下載次數(shù): 132)
下載附件
2018-3-8 22:56 上傳
圖片13.png (9.46 KB, 下載次數(shù): 127)
下載附件
2018-3-8 22:56 上傳
第二,通過(guò)引用交換兩個(gè)變量的值
圖片14.png (20.02 KB, 下載次數(shù): 121)
下載附件
2018-3-8 22:56 上傳
圖片15.png (22.72 KB, 下載次數(shù): 133)
下載附件
2018-3-8 22:56 上傳
我們知道這個(gè)程序是無(wú)法實(shí)現(xiàn)交換兩個(gè)數(shù)值的,如果想交換兩個(gè)數(shù)值,按照以前的辦法就是使用指針,這里不多說(shuō)。 我們學(xué)習(xí)了引用之后可以通過(guò)引用來(lái)實(shí)現(xiàn)交換兩個(gè)變量的值。 如下程序,x、y是實(shí)參,a、b是形參,將實(shí)參x、y賦值給形參a、b,a、b就是x、和y的別名,改a、b就是把x、y的數(shù)值改了。
圖片16.png (21.02 KB, 下載次數(shù): 143)
下載附件
2018-3-8 22:56 上傳
圖片17.png (31.44 KB, 下載次數(shù): 136)
下載附件
2018-3-8 22:56 上傳
最后說(shuō)明一點(diǎn):引用作為函數(shù)參數(shù)聲明時(shí)不進(jìn)行初始化。 注意:在寫程序時(shí),最初定義的函數(shù)是swap,調(diào)用函數(shù)時(shí)發(fā)現(xiàn)swap(x,y)和swap(&x,&y)都可以編譯運(yùn)行成功,匪夷所思! 原來(lái)C++自己有一個(gè)swap函數(shù),因?yàn)槲覍⑽覍懙?/font>swap函數(shù)定義屏蔽后,發(fā)現(xiàn)依舊可以調(diào)用該函數(shù)!因此,后來(lái)改為myswap函數(shù)。 【C++】筆記系列均為原創(chuàng),轉(zhuǎn)載請(qǐng)注明轉(zhuǎn)自微號(hào):Lightspeed-Tech 或 AutoCode 更多精彩資料,請(qǐng)關(guān)注!
|