C 基礎 引用

2021-07-15 02:58:08 字數 1263 閱讀 7248

函式中引數的傳遞方式:

傳值:在函式域中為引數重新分配記憶體,而把實參的數值傳遞到新分配的記憶體中。

優點:不會改變實參的值;

引用:引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名,也就是c++系統不為引用型別變數     分配記憶體空間。引用主要用於函式之間的資料傳遞。

優點:如果實參是乙個複雜的物件,重新分配記憶體會引起程式執行效率大大下降,而引用只傳遞位址,不會分配記憶體。

注意:

1.對陣列只能引用陣列元素,不能引用陣列(陣列名本身為位址)。

2.不能定義引用的引用(引用也是位址),所以當函式的引數為引用時,引用不能作實參。

當引用作為形參時,實參也不能使用不可定址的值,更不可能進行型別轉換(如:實數轉換為整數)。

但是const引用不同,它是唯讀的,為了絕對保證不會發生誤改,編譯器實現const引用時,生成乙個臨時物件,

引用實際上指向該臨時物件,但使用者不能訪問它。所以const引用可以實現不可定址的值(包括字面常量)的引用,

例如:const double dval=1024; const int &ri=dval;

是正確的,編譯器將其轉換為:

const double dval=1024; int temp=dval; const int &ri=temp;

因有臨時物件,引用和型別轉換都實現了。當const引用作為形參時,實參也能使用不可定址的值,並能進行型別轉換

注意:只能對已有空間進行引用;

int a = 10;

int &b = a;   //對變數引用

int *p = &a;

int *&q = p;  //對指標引用

int ar[10] = ;

int (&br)[10] = ar;       //對陣列引用

const int x = 100;

const int &y = x;       //常量只能用常引用

int n = 20;

const int &m = n;       //用m不能改變n

const double d = 12.34;

const int &f = d;        //引用了中間的臨時變數

注意:中間變數一般具有常量的性質,不可改變;

C 基礎 引用

什麼是引用 引用的概念及用法 引用做引數 引用做返回值 引用和指標的區別 引用其實就是給物件 起別名 定義了乙個原有物件的同義詞,對引用進行的操作和對被引用所繫結的物件做的操作等價 用法 型別 變數名 變數名 如 int a 0 int b a 引用的型別必須與被引用的型別相同 宣告引用的同時必須對...

C 引用基礎

引用 includeusing namespace std struct student struct teacher int getnum student s2 void main 引用賦值 b 13 printf a d n a 結構體引用 student s1 s1.age 12 定義s1的引...

c 基礎 引用 const

一些c 對於c語言的加強 1 int fun 在c語言中表示返回值int型的函式,括號裡的引數是任意的 但是在c 中也表示int 型返回值的函式,但是括號裡是沒有引數的相當於int fun void 也就是說在c 中他強調的是型別,所有程式的所有元素都必須指明型別 2 c 中的表示式的返回值是變數本...