歡迎來到我的部落格

2021-08-10 20:29:15 字數 2384 閱讀 7778

猜想僅供娛樂:

專案下屬專案

測試用例數量

什麼是引用

定義、基礎應用

2引用怎麼用

臨時變數、靜態變數、已有變數

4我們為什麼需要引用

高階應用

1怎麼就發明引用了呢無0

在c++中,引用是已定義變數的別名。 —— [ 維基百科 ]

我們先來看乙個最簡單的例子

#include

using

namespace std;

void

main()

上面的**塊中,b就是a的引用。根據官方解釋,引用是已定義變數的別名。可以看到,a是已定義的變數,那麼b就是a的引用,b是a的別名,即b相當於a,兩者的位址是一樣的,有著相同的記憶體空間,那麼可以推斷,修改b也就能夠修改a,下面是修改後的**1

.

#include

using

namespace std;

void

main()

執行即可看到修改後a和b輸出的是同樣的結果,因為a和b都是同一塊記憶體空間的名字,所以修改了b也就修改了a2

.

#include

using

namespace std;

intmyf1()

int&

myf2()

//引用做返回值

int*

myf3()

//myf2和myf3其實是類似的

void

main()

#include

using

namespace std;

int&

myf4()

void

main()

#include

using

namespace std;

int&

myf5()

//引發思考:什麼是鏈式程式設計?

void

main()

int

&myf6

(int

&a)//變數位址已有,不會出錯

void

main()

從上面引用的三種用法來看,引用和變數的生存週期有很大的關係,通常來說臨時變數不應該做引用的返回,但如果是靜態變數或者是被返回的函式裡已有的變數(傳入的形參就是引用,返回時自然也可以返回引用),生存週期很長,返回引用是可以的。

同時我們也知道了引用的好處,它幫我們隱藏了取位址(&)和取內容(*)的操作3

.我們來看乙個高階的應用吧,請注意 *&符號

#include

using

namespace std;

typedef

struct _teacher

teacher;

void

getteacher1

(teacher *

*p)void

getteacher2

(teacher *

&p)//p就相當於t2,把t2的位址傳過來給p,但編譯器遇到p會自動做*操作

void

main()

從上面的程式可以知道,我們先是定義了乙個老師的結構體,然後定義了其結構體指標,到函式裡去申請記憶體空間並賦值。比較getteacher1(&t1)和getteacher(t2),採用了引用的函式不僅在**部分大大得到了簡化,而且可讀性也更強4

!經過以上的例子,相信你也差不多該領會引用的好處了。它就是幫我們隱藏了兩種操作,僅僅只需要你在定義變數的時候在前面加乙個&符號,就幫你避免了頻繁寫取位址和取內容的問題,而且在**可讀性上也大大提高,理解上只要替換下變數的名字就行了。

你看,引用這麼方便,所以請盡情的使用引用吧!

懶惰使人類思考。

如果本文對你有幫助,不如請我一杯可樂吧 ?

什麼是引用

引用怎麼用

我們為什麼需要引用

怎麼就發明引用了呢

用例基於王保明先生講課內容:2014.4.29.引用專題. ↩︎

測試用例基於王保明先生的講課內容. ↩︎

測試用例基於王保明先生的講課內容. ↩︎

測試用例基於王保明先生的講課內容. ↩︎

歡迎來到我的部落格

大多數人都高估了自己一年內能做到的事情 也低估了自己十年內能做到的事情。吉姆.羅恩 鼓起勇氣,申請開啟部落格,開始嘗試探索去寫技術型部落格文章。此時,內心對這個部落格的期待是這樣 有很大可能性,我這個期待,在這一年內看來,是明顯高估了。所以,記下開頭重要的話來提醒自己,一年沒達到,要接納自己喲,不能...

歡迎來到我的部落格空間

由 admin 於 星期五,09 25 2009 16 17 發表 像virtualbox這種貪婪程式,在它忙碌的時候,即使系統有多個cpu,也會被它吃光。別的應用會變得奇慢無比。這時可根據情況對virtualbox能夠占用的cpu進行限制。用psrset命令 psrinfo 0 on line s...

置頂篇 歡迎來到我的部落格

我是乙個來自廣東深圳的oier,現在是高中生,興趣廣泛,你可以找我聊聊你感興趣的事物,說不定我們就能成為志同道合的好友。你可以到處逛逛,在我的部落格裡,你也許能發現許多有趣的東西,也許能激發你的靈感,或者甚至耗費你大量時間 你也可以留下你的足跡,在我稚嫩的文筆下留下徐徐刀痕,也可以對我表示鼓勵,增加...