C 中的 「引用」

2021-09-01 13:26:01 字數 1269 閱讀 7417

引用是充當另乙個變數的別名的變數。引用型別最常用於函式的引數。在函式引數中使用引用變數可以使得函式對傳遞給他的變數作出永久性改變。同樣也可以使用在其它地方,但是實用性不強。

在宣告 中使用 "&" 來表示乙個引用。

一般情況下,引數按值傳遞到函式中進行使用。這時,函式獲得的是引數的副本,所以對形參的修改不會影響到傳入的實參的值。

如果引數通過引用傳遞,函式獲得的是對實參本身的訪問(不是像值傳遞一樣建立乙個副本,然後對副本進行訪問或修改)。

宣告方式:        型別& 變數名        型別 &變數名

這兩種宣告方法的效果是一樣的,不同之處只是**的風格差異。

例如:void myfunction(int& num, int &test)

#include

using std::cin;

using std::cout;

using std::endl;

void test(int &n) 

int main()

輸出結果:

這樣的宣告看起來有點兒矛盾,採用引用引數的目的是使函式能更改引數的值,但const關鍵字阻止了這種更改。這是因為,更改引數的值不是使用引用引數的唯一目的,同樣重要的是,在使用乙個引用的情況下,不執行複製。在傳遞乙個大的資料結構時,為了提高程式執行效率,不執行複製,最好使用引用引數。宣告語法如下:

const 型別 &引數

因此,盡量把引用引數宣告為 const 型別,除非你需要讓函式來更改這個資料。

使用引用引數的優點:

1、在返回值不夠用的情況下,可以避免全域性變數氾濫,影響開發效率。

2、可以不使用指標,但完成一樣的效果。

3、引用引數不會導致複製,如果引數是乙個很大的陣列或者物件,可以提高程式執行效率,節省資源。

注意事項:

1、只用左值可以被傳遞給引用引數(左值是能有效地放在賦值運算子左邊的表示式:包括變數、陣列元素、類成員、指標。不能講乙個常量如「chamico」 傳遞給引用引數)。

2、如果引用引數繫結到某個變數後就不能再指代別的物件,但每個函式單獨呼叫可以使引數引用的是乙個不同的變數。

3、一元 「&」 運算子,只有當應用於正被宣告的專案時才宣告乙個引用。當 「&」 作為一元運算子出現在可執行語句中時表示的是 「取位址符」 ,作為二元運算子出現時表示 「按位與」。

C 中的引用

最近重新看c 看到些以前沒注意的dd,溫故而知新,暫且記下。引用是能自動間接引用的一種指標,即不必使用間接引用運算子 就可以得到乙個引用值。引用可以為變數起別名,它主要用作函式引數以及函式的返回型別。1 引用的定義 如 int i int j i j是i的引用。1 定義引用時,必須立即對它進行初始化...

C 中的引用

例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 宣告引用時,必須同時對其進行初始化。4 引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數...

C 中的引用

引用是c 引入的新語言特性,是c 常用的乙個重要內容之一,正確 靈活地使用引用,可以使程式簡潔 高效。我在工作中發現,許多人使用它僅僅是想當然,在某些微妙的場合,很容易出錯,究其原由,大多因為沒有搞清本源。故在本篇中我將對引用進行詳細討論,希望對大家更好地理解和使用引用起到拋磚引玉的作用。一 引用簡...