引用是c++的初學者比較容易產生迷惑的概念,引用引入了物件的乙個同義詞,只是繫結的物件的另乙個名字,作用在引用上的所有操作事實上都是作用在該引用繫結的物件上(聯想指標、取位址)
型別識別符號 &引用名 = 目標變數名;
引用就像學生的學號,其作用域是學生入學(宣告)之後,具有一一對應的特徵
以前都是用指標傳遞資料,可以避免將整塊資料全部壓棧,從而提高程式的效率,現在可以採用引用
好處:在程式的主調函式呼叫點處,直接以變數作為實參進行呼叫即可,而不需要對實參變數有任何特殊要求(有別於指標傳參)
《型別識別符號》
&《函式名》(形參列表及型別說明)
一般來說,要遵循以下規則:
不能返回區域性變數的引用(區域性變數是在棧裡面建立的,函式呼叫完,就會被釋放,引用所引用的位址就沒有了。區域性變數在函式返回後被銷毀,因此被返回的引用就成為了"無所指"的引用,程式會進入未知狀態)
不能返回函式內部new分配的記憶體的引用。例如,被函式返回的引用只是作為乙個臨時變數出現,而沒有被賦予乙個實際的變數,那麼這個引用指向的空間(即new分配的)就無法被delete,就會造成記憶體溢位等錯誤
可以返回類成員的引用(但最好是const。主要原因是當物件的屬性是與某種業務規則(business rule)相關聯的時候,其賦值常常與某些其它屬性或者物件的狀態有關,因此有必要將賦值操作封裝在乙個業務規則當中。如果其它物件可以獲得該屬性的非常 量引用(或指標),那麼對該屬性的單純賦值就會破壞業務規則的完整性)
返回靜態物件的引用要視情況而定。靜態物件只初始化一次,如果有比較的出現,如if((a+b)==(b+c)),會導致條件一直成立。顯然這並不是我們要的結果
C 變數的引用 使用變數的引用
c 可以對乙個資料可以使用引用,引用是c 對c語言的乙個重要擴充,引用是一種新的變數型別,它的作用是為乙個變數起乙個別名。比如要給變數temp起個別名change int temp 定義整型變數temp int change temp 宣告change是temp的引用上述 宣告了change是tem...
C 變數的引用
有預設引數的函式 float area float r 6.5 area 相當於area 6.5 area 7.5 形參得到的值是7.5,而不是6.5。這樣做可以簡化程式,提高執行效率。例如 float volume float h,float r 12.5 volume 45.6 程式相當於vol...
C 變數的引用
int a int b a 1.宣告變數b只是乙個引用,不需要另外的開闢記憶體單元存放b的值,b與a佔記憶體中的同乙個儲存單元,具有相同的位址。2.必須向定義乙個變數,後宣告對該變數的引用。對引用只有宣告,沒有定義。3.在宣告乙個引用的時候必須同時進行初始化,即宣告它代表的是哪乙個變數。4.在宣告乙...