c 變數的引用 5

2021-09-08 18:56:32 字數 2042 閱讀 2127

1.引用變數的主要用途:

用作函式的形參,通過將引用變數用作引數,函式將使用原始資料而不是其拷貝。

2.引用變數用法

建立變數的引用:int& a = b;(是將a的型別宣告為int&,即int變數的引用

注意:在宣告變數的引用時必須初始化(如之前例句)

inta;

int&b;

a =b;//should not do this

3.只能通過初始化宣告來設定引用,不能通過賦值來設定

(1)int& a = b;等同於int* const a = &b;

(2)只能通過初始化來設定引用,不能通過賦值來設定

intb =100;

int&a =b;

intc =50;

a=c;//this can change the b』s value to 50

4.將引用用作函式引數

(1)引用傳遞:將引用用作函式引數,使得函式中的變數名稱為呼叫程式中的變數的別名。

(2)按值傳遞與按引用傳遞:

/*按值傳遞:2個變數,2個名稱*/

voidsneezy(intx)

intmain

voidsneezy(intx)

/*按引用傳遞:1個變數,2個名稱*/

voidsneezy(intx)

intmain

voidsneezy(int&x)

(3)常量引用

如果程式設計師的意圖是讓函式使用傳遞給它的資訊,而不對這些資訊進行修改,同時又想使用引用,則應使用常量引用。

定義方式為:

doublerefcube(constdouble&ra);

(4)臨時變數、引用引數和const

僅當引數為const引用時,如果實參與引用引數不匹配,c++將產生臨時變數。

兩種情況:

a.實參的型別正確,但不是左值。

左值引數:可被引用的資料物件,如:變數、陣列元素、結構成員、引用和被解除引用的指標。非左值包括:字面常量和包含多項式的表示式

b.實參的型別不正確,但可以轉換為正確的型別。

注意:如果接受引用引數的函式的意圖是修改作為引數傳遞的變數,則建立臨時變數將阻止這種意圖的實現。

(5)應盡量使用const

a.使用const可以避免無意中修改資料的程式設計錯誤;

b.使用cosnt使函式能夠處理const和非const實參,否則只能接受非const資料;

c.使用const引用使函式能夠正確生成並使用臨時變數。

5.將引用用於結構

引用非常適合用於結構和類。引入引用的目的主要就是用於這些型別。

有如下**:

structsysop

constsysop&use(sysop&sysopref)

通常,返回機制將返回值複製到臨時儲存區域中,隨後呼叫程式將訪問該區域。而返回引用則意味著呼叫程式將直接訪問返回值。

const的意思是:不能使用返回的引用來直接修改它指向的結構。

use(looper).used =10;//can not do this

6.引用,指標和按值傳遞該什麼時候使用?

(1)使用引用引數的主要情況:

a.程式設計師能夠修改呼叫函式中的資料物件;

b.通過傳遞引用而不是整個資料物件,可以提高程式的執行速度。

(2)對於使用傳遞的值而不做修改的函式:

a.資料物件很小,如內建資料型別或小型結構,則按值傳遞;

b.資料物件是資料,使用const 指標;

c.資料物件是較大的結構,使用const指標或const引用;

d.資料物件是類物件,使用const引用。

(3)對於修改呼叫函式中資料的函式:

a.資料物件是內建資料型別,使用指標;

b.資料物件是陣列,使用指標;

c.資料物件是結構,使用指標或引用

d.資料物件是類物件,使用引用。

C 變數的引用 使用變數的引用

c 可以對乙個資料可以使用引用,引用是c 對c語言的乙個重要擴充,引用是一種新的變數型別,它的作用是為乙個變數起乙個別名。比如要給變數temp起個別名change int temp 定義整型變數temp int change temp 宣告change是temp的引用上述 宣告了change是tem...

C 變數的引用

有預設引數的函式 float area float r 6.5 area 相當於area 6.5 area 7.5 形參得到的值是7.5,而不是6.5。這樣做可以簡化程式,提高執行效率。例如 float volume float h,float r 12.5 volume 45.6 程式相當於vol...

C 變數的引用

int a int b a 1.宣告變數b只是乙個引用,不需要另外的開闢記憶體單元存放b的值,b與a佔記憶體中的同乙個儲存單元,具有相同的位址。2.必須向定義乙個變數,後宣告對該變數的引用。對引用只有宣告,沒有定義。3.在宣告乙個引用的時候必須同時進行初始化,即宣告它代表的是哪乙個變數。4.在宣告乙...