在學習
c++引用是乙個比較容易混淆的東西,「引用是乙個變數的別名」這貌似是很多教材中對引用的定義,貌似老師還會舉一些什麼張三李四的例子,但是我覺得對於學習
c++的人來說該清楚引用還是有必要的。
我認為引用就是
c++把指標包裝了一下然後提供給我們用的乙個相對安全方便的東西。
我個人把引用理解為乙個
const
指標,引用一旦初始化不能改變其指向的物件。下面舉了乙個例子來支援我的想法:
int a;
int *const conptr = &a;
int &ref = a;
while (cin >> a)
輸出結果為:
12&a 001efc5c
conptr: 001efc5c
*conptr: 12
ref 12
&ref 001efc5c
這段程式證實了我的想法:引用ref的本質其實就是conptr,我們可以理解成每當我們用到ref的時候c++都已經是進行解引用操作符(*conptr)。這樣我們就可以放心的使用ref而不用擔心ref指向其他的記憶體位址。
順便提一下引用較之指標的優點:
1. 引用宣告的時候必須初始化,且之後不能將其指向其他物件,這樣就可以保證引用不會指向未分配的記憶體位址。(若指向的記憶體位址被釋放了那麼引用也會發生錯誤)
2. 引用不能申明為null,這樣就不會發生像空指標一樣的危險情況。
指標與指標的引用
c 之研究 指標和引用 vb中的函式或過程的引數有2種傳遞方式 一種是值傳遞 一種是引用傳遞。分別用keywordbyval和keywordbyref指出。假設引數是以引用傳遞的話,函式或過程內部就能夠靠這個引用引數來改變外部變數的值。在c語言中,假設要實如今函式內部改變外部變數的值的話,就應該傳遞...
指標的引用( )與指標的指標( )
在下列函式宣告中,為什麼要同時使用 和 符號?以及什麼場合使用這種宣告方式?void func1 myclass pbuildingelement 論壇中經常有人問到這樣的問題。本文試圖通過一些實際的指標使用經驗來解釋這個問題。仔細看一下這種宣告方式,確實有點讓人迷惑。在某種意義上,和 是意思相似的...
指標與引用
摘自 高質量c 程式設計 指標與引用,在more effective c 的條款一有詳細講述,我給你轉過來 條款一 指標與引用的區別 指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用...