溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

引用與const

發(fā)布時(shí)間:2020-07-05 14:01:06 來(lái)源:網(wǎng)絡(luò) 閱讀:375 作者:王忠燦 欄目:編程語(yǔ)言

C++引用簡(jiǎn)介:

    引用引入了對(duì)象的一個(gè)同義詞。定義引用的表示方法與定義指針相似,只是用&代替了“*”。引用是C++對(duì)c語(yǔ)言的重要擴(kuò)充。

    引用就是某一變量的一個(gè)別名,對(duì)引用的操作與對(duì)變量直接操作完全一樣。

    引用的聲明方法:類型標(biāo)識(shí)符 &引用名=目標(biāo)遍歷名

實(shí)例說(shuō)明:

        int a;
        int &p_a=a;

    注:(1):&在此不是求址運(yùn)算,而是起標(biāo)識(shí)作用。

       (2):類型標(biāo)識(shí)符是指目標(biāo)變量的類型。

       (3):聲明引用,必須對(duì)其進(jìn)程初始化。

      (4):引用聲明完畢后,相當(dāng)于目標(biāo)變量名有兩個(gè)名稱,即該目標(biāo)原名稱和引用名,且不能再把該引用名作為其他變量名的別名。

       (5):聲明一個(gè)引用,不是定義了一個(gè)變量,只是表示該引用名是變量名的一個(gè)別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲(chǔ)空間,系統(tǒng)也不給引用分配存儲(chǔ)單元。故:對(duì)引用取地址,就是對(duì)該引用的目標(biāo)變量就地址。

       (6):不能建立數(shù)組的引用。因?yàn)閿?shù)組是一個(gè)由若干個(gè)元素組成的集合,所以無(wú)法建立



一個(gè)數(shù)組的別名。

    注:

    例:int &p_a[3]={2,3,5};

    但是可以這么寫(xiě):const int (&p_a)[3]={2,3,5};但是GCC編譯時(shí)要加上-std=c++0x

引用本質(zhì)剖析:

    引用其實(shí)就是C++中的常量指針。表達(dá)式 int &i=j => int *const i=&j;而引用之所以要初始化時(shí)因?yàn)閏onst類型的變量必須初始化,這個(gè)而指針必須有所值。

         int main()
         {
             int i=10;
             int &j=i;
             j++;
             cout<<i<<j<<endl;
             cout<<&i<<&j<<endl;
             return 0;
         }

    下面來(lái)看這段代碼:

        int main()
        {
            int i=10;
            int *const j=&i;
            (*j)++;
            cout<<i<<*j<<endl;
            return 0;
        }

    打印時(shí)會(huì)跳過(guò)打印地址這一步。這需要一些解釋。因?yàn)橐米兞繒r(shí)會(huì)被編譯器自動(dòng)解引用。

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI