C 學習筆記 二

2022-03-28 19:38:08 字數 1133 閱讀 3610

定義:引用變數是某個已存在變數的另乙個名字。一旦把引用初始化為某個變數,對引用的操作與對變數直接操作就是一樣的。

宣告方法:目標變數的型別 &引用名=目標變數名;

引用宣告完畢後,相當於目標變數有兩個名稱,即該目標原名稱和引用名,且該引用名不能再作為其他變數的引用名。

例子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 字串...