定義:引用變數是某個已存在變數的另乙個名字。一旦把引用初始化為某個變數,對引用的操作與對變數直接操作就是一樣的。
宣告方法:目標變數的型別 &引用名=目標變數名;
引用宣告完畢後,相當於目標變數有兩個名稱,即該目標原名稱和引用名,且該引用名不能再作為其他變數的引用名。
例子:int& a=i;
說明a是乙個初始化為i的整型引用。
double& b=m;
說明b是乙個初始化為m的double型引用。
引用與指標的不同
注意:(1)宣告乙個引用,不是新定義乙個變數,它只表示該引用名是目標變數名的乙個別名,因為引用不是一種資料型別,所以引用本身不佔儲存單元,系統也不給引用分配儲存單元。所以,引用的位址與目標變數的位址相同。
(2)不能建立陣列的引用。因為陣列是乙個由若干個元素所組成的集合,所以無法建立乙個陣列的別名。
引用作為函式的引數
先看乙個典型的例子:
void swap(int &p1, int &p2) //此處函式的兩個形參都是引用
int main()
這個程式的作用是交換a,b的值。
注意:此時函式中對形參的各種操作實際上是對實參本身進行操作,而不是將實參變數或物件的值拷貝給形參。如果引數傳遞的資料較大時,建議使用引用作為函式的形參,這樣會提高函式的時間效率,並節省記憶體空間。
常引用常引用的宣告:在引用的宣告前加上const即可。
例如
int a ;
const int &ra=a;
ra=1; //錯誤
a=1; //正確
作用:提高安全性。
引用作為返回值
要使引用作為返回值,定義函式時需要在函式名前加&。
優點:在記憶體中不產生被返回值的副本。
規則:
參考:
C 學習筆記(二)
在學習最新的c 標準過程中會碰到很多新問題,這些問題有時候很難理解為什麼會發生。更奇怪的是,似乎跟開發工具有關。如下面這個在vs2005下的例子 word istatus ifstream ifs if i it szprlfile,0 0 std locale global std locale ...
C 學習筆記二
chapter22 滾動字幕程式 1.ondraw函式中寫畫得內容.使用invalidate 或者 invalidaterect 重新整理 觸發ondraw 得呼叫.2.windows不允許直接 訪問顯示硬體 我們必須通過和視窗 關聯得 裝置環境 跟顯示硬體 通訊 裝置環境由c 得cdc類 物件表示...
C 學習筆記(二)
本期話題 字串文字常量,指標,引用 1 關於字串文字常量 sizeof bohr 5 字串文字常量的型別是 適當個數的const字元的陣列 所以 bohr 的型別就是const char 5 下面的賦值是可以的 char p bohr 因為在c c 原來的定義裡,字串文字常量的型別就是char 字串...