嚴格說來,c中是沒有引用這一概念的 只有取位址符這一說法
引用(reference)是c++對c
的重要擴充。
定義引用的表示方法與定義指標
相似,只是用&代替了*。
引用就是對目標變數的別名,
對引用的操作與對變數直
接操作完全一樣。其實引用也是一種多型的表現。
往往在需要傳遞大型物件火大的資料時 我們需要用到引用,這樣就不必臨時申請棧記憶體來儲存區域性變數。
宣告乙個引用,不是新定義了乙個變數,它只表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。
從空間和時間效率上來講也是很大的提公升。
使用引用時需要注意幾大點
1.宣告引用時候 必須同時初始化,因為沒有空引用!
2不能建立陣列的引用。因為陣列是乙個由若干個元素所組成的集合,所以無法建立乙個陣列的別名
3.引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。
4.引用初始化後不能被改變。
傳遞可變引數傳統的c中,函式在呼叫時引數是通過值來傳遞的,這就是說函式的引數不具備返回值的能力。
所以在傳統的c中,如果需要函式的引數具有返回值的能力,往往是通過指標來實現的。比如,實現
兩整數變數值交換的c程式如下:
void swapint(int *a,int *b)
使用引用機制後,以上程式的c++版本為:
void swapint(int &a,int &b)
//給函式傳遞大型物件
當大型物件被傳遞給函式時,使用引用引數可使引數傳遞效率得到提高,因為引用並不產生物件的
副本,也就是引數傳遞時,物件無須複製。下面的例子定義了乙個有限整數集合的類:
const maxcard=100;
class set
//建構函式
friend set operator * (set ,set ) ; //過載運算符號*,用於計算集合的交集 用物件作為傳值引數
// friend set operator * (set & ,set & ) 過載運算符號*,用於計算集合的交集 用物件的引用作為傳值引數
...}
HTML中小meta的大作用
name 屬性 1 用以說明生成工具 如microsoft frontpage 4.0 等 3 告訴搜尋引擎你的站點的主要內容 4 告訴搜尋引擎你的站點的製作的作者 5 其中的屬性說明如下 設定為index 檔案將被檢索 http equiv屬性 1 和 用以說明主頁製作所使用的文字以及語言 又如英...
SEO HTML文件中小meta的大作用
告訴搜尋引擎你的站點的主要內容 告訴搜尋引擎你的站點的製作的作者 其中的屬性說明如下 設定為all 檔案將被檢索,且頁面上的鏈結可以被查詢 設定為index 檔案將被檢索 設定為nofollow 檔案將不被檢索,頁面上的鏈結可以被查詢。http equiv屬性 和 用以說明主頁製作所使用的文字以及語...
C 引用的作用
學習了引數的三種傳遞方式 值傳遞 指標傳遞與引用傳遞後不由地對這不熟悉的引用感到好奇,根據引用的概念,引用在定義初始化時與物件名繫結,為物件建立引用名,就類似於別名的作用,可別名不就會像值傳遞一樣不改變實參的值了嗎,可引用傳遞又能跟指標傳遞一樣改變實參的值,我便抱著這種疑問對引用展開 先看下引用傳遞...