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