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