一.概念
引用是變數的別名,對引用的操作與對變數的操作完全一樣。引用符號&與c語言中取位址符號一樣,含義不同。
引用的方法:型別識別符號 &引用名 = 變數名
例如:
int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名
二.引用例項
1.引用作為函式引數
void swap(int &p1, int &p2) //此處函式的形參p1, p2都是引用
//為在程式中呼叫該函式,則相應的主調函式的呼叫點處,直接以變數作為實參進行呼叫即可,而不需要實參變數有任何的特殊要求。如:對應上面定義的swap函式,相應的主調函式可寫為:
int main(void)
3.引用作為返回值
#include using namespace std;float temp; //定義全域性變數temp
float fn1(float r); //宣告函式fn1
float &fn2(float r); //宣告函式fn2
float fn1(float r) //定義函式fn1,它以返回值的方法返回函式值
float &fn2(float r) //定義函式fn2,它以引用方式返回函式值
void main() //主函式
{ float a=fn1(10.0); //第1種情況,系統生成要返回值的副本(即臨時變數)
//float &b=fn1(10.0); //第2種情況,可能會出錯(不同 c++系統有不同規定)
//不能從被調函式中返回乙個臨時變數或區域性變數的引用
float c=fn2(10.0); //第3種情況,系統不生成返回值的副本
//可以從被調函式中返回乙個全域性變數的引用
float &d=fn2(10.0); //第4種情況,系統不生成返回值的副本
//可以從被調函式中返回乙個全域性變數的引用
cout<(1)以引用返回函式值,定義函式時需要在函式名前加&。
(2)用引用返回乙個函式值的最大好處是,在記憶體中不產生被返回值的副本。
mapReduce概念及用法
mapreduce 隨著 大資料 概念而流行 其實mapreduce 的概念非常簡單 從功能上說 相當於 rdbms 的group 操作 mapreduce的真正強項在哪?答 在於分布式 當資料非常大時,像 google,有n 多資料中心 資料都不在地球的一端,用 group 力所不及.group既...
C 11 shared ptr概念及用法
c 11模板庫 include shared ptrptr new t t 可以是 int char 類等各種型別gnu g 的標準庫中還沒有支援,需使用boost include每個 shared ptr 物件在內部指向兩個記憶體位置 ptr.use count 1 使用空引數建構函式構造 std...
volatile變數的概念及用法
volatile關鍵字是一種型別修飾符,用它宣告的型別變數表示可以被某些編譯器未知的因素更改,比如 作業系統 硬體或者其它執行緒等。遇到這個關鍵字宣告的變數,編譯器對訪問該變數的 就不再進行優化,從而可以提供對特殊位址的穩定訪問。int i 5 int a i int b i 編譯器發現兩次從i讀資...