C++ 引用型別簡介

大雄45發表於2021-05-04
導讀 在C++ 中可以定義“引用”。定義方式如下: 型別名 &引用名 = 同型別的某變數名; 此種寫法就定義了一個某種型別的引用,並將其初始化為引用某個同型別的變數。

定義:引用:就是變數的一個別名。

C++ 引用型別簡介C++ 引用型別簡介

注:作為別名來說,一個變數不能只有別名,而沒有自己的真實姓名。

基本資料型別的引用

如下面的一段程式碼:

例項

#includeusing namespace std;
{
    int a = 3;
    int &b = a;  //b就是a的引用,即b是a的一個別別名。
                 //引用必須初始化,否則編譯會報錯
    b = 10;
    cout<< a << endl; //此時a 的值,已由原來的3變成了10.因為我們無論對別名做什麼操作,其實都是對變數的本身做操作。就像我們去交蘿蔔頭去幹什麼,羅XX本身就去幹什麼。
    return 0;
}
結構體型別的引用

如下面的一段程式碼:

例項

#includeusing namespace std;
//定義一個名叫Coor的結構體,這是一個座標。
typedef struct
{
    int x;
    int y;
}Coor;
 
int main(void)
{
    Coor c1;    //定義一個結構體變數,叫c1.
    Coor &c = c1;    //給c1起了一個別名叫c.
    c.x = 10;    //透過引用給結構體變數的資料成員賦值
    c.y = 20;
    cout<< c1.x << c2.y;    //輸出的結果:10 20
    return 0;
}
指標型別的引用

指標型別的引用是引用當中最為複雜,最難理解的一部分,同時在寫法形式上也有著與眾不同的地方。

定義:

型別 *&指標引用名 = 指標;

看個例子:

例項

#includeusing namespace std;
 
int main(void)
{
    int a = 10;    //定義一個整型的a變數,a的值為10。
    int *p = &a; //定義一個指向a變數的指標
    int *&q = p;    //定義一個指標的引用,即q為p的別名。 定義方法:型別 *&指標引用名 = 指標;
    *q = 20;    //把20賦給*q,相當於是把20賦值給*p,也就相當於把20賦值給a.
    cout<< a << endl;    //輸出a 的值為20.
    return 0;
}
引用作函式引數

在沒有學習引用之前我們學習 C 語言時,學過這樣的經典程式:

//將兩個值進行交換
void fun( int *a,int *b) //形參為兩個整型的指標變數
{
    int temp = 0;    //定義一個臨時變數。良好的習慣是定義一個變數並初始化它;
    c = *a;    //將*a賦值給c;
    *a = *b;    //將*b賦值給*a;
    *b = c;    //再將c賦值給*b;這樣就完成了a、b數值的交換
}
 
int x = 10,y = 20;
fun(&x,&y); //在主函式中呼叫時,傳過去的實參需要寫成 取地址a,取地址b,比較麻煩,也不易理解。

現在我們學習了引用,在完成同等功能時需要寫成什麼樣子?

例項

void fun (int &a, int &b)    //形參為兩個整型的引用
{
    int temp = 0;
    temp = a;
    a = b;
    b = temp;
}
 
int x = 10,y = 20;
fun(x,y);    //在主函式中呼叫時,實參傳過去後a是x的別名,b是y的別名。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2770798/,如需轉載,請註明出處,否則將追究法律責任。

相關文章