C++學習day4之引用

#include<iostream>
using namespace std;

/*
 變量名,本身是一段內存的引用,即別名。此處引入的引用,是爲已有變量起一個別名
 */

int main()
{
    /*
     * int a=100;
     *這是a是個變量名,實質是一段內存空間的別名,
     *這個就是出生的時候給它的。日後我們還可以給它取個別名,如下
     *int& b=a;這就建立了一種引用關係。這個時候,我們就叫b是a的別名。
     *b是a的引用。那引用和a之間有什麼關係
     *1.引用是一種聲明關係,聲明的時候必須初始化。你 int& b;是不可以的。
     *引用不開闢空間。這個b是不佔空間的。僅僅是一段聲明的。
     *此種聲明關係,一經聲明,不可變更。
     *注意 這裏說的是不能聲明,而不是不能賦值
     *如下:int a=100; int& b=a; int c=200; b=c;是可以的,因爲b=c這裏指
     *的是賦值,不是聲明。如果你在int &b=c;這纔是聲明。
     *可以對引用再次引用,多次引用的結果就是多個引用指向同一個地址
     *但是&這個也是個取地址符,你怎麼區分什麼時候是引用,什麼時候是
     *引用呢???。這裏其實就是運算符重載。&符號前面有數據類型的時候
     *是引用,其餘的都是取地址。比如 int& 就是引用。int *p=&a就是取地址。
     *但是你不能對引用進行取地址。
     */
    int a=100;
    int& b=a;
    /*可以定義指針的引用,但是不能定義引用的引用。
     * 如下:
     * int a=100;int *b=&a;int *&c=b;是可以的,這裏C就是對b的引用
     * 這裏b是一個指針,所以這是定義指針的引用。
     * 這裏需要 int* &d=c;
     */
    /*
     * 可以定義指針的數組,但是不能定義引用數組,可以定義數組引用
     * 定義一個數組 int a[]={1,2,3,4,5};
     * 怎麼引用數組,數組名本身是個地址,但是我們不能int * &p=a;
     * 因爲你a現在只是一個指針,是不能完全表達一個數組的。
     * 這個a的類型實際上是int[5]這個類型,所以我們引用應該是這樣的
     * int(&p)[5]=a;
     */

    return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章