c++中引用的實質

c++引用就是指針有地址。只要優化。

// ConsoleApplication4.cpp : 定義控制檯應用程序的入口點。
//

#include "stdafx.h"

int main()
{

    //char c = 'a';
    //printf("%c",(&c)[10]);
    //上次沒打印成功題
    //以變量地址後數10個字節當成字符打印
    //剛纔忘說了..

    /*
    引用真的沒有地址麼
    */

    int Temp = 10;
    int *p1 = &Temp;
    int Temp2 = 20;
    int &p2 = Temp2;

    int *p = (&Temp2) -3;
    printf("%d",*(int*)*p);

    /*
        int Temp = 10;
013A17B8  mov         dword ptr [Temp],0Ah  
    int *p1 = &Temp;
013A17BF  lea         eax,[Temp]  
013A17C2  mov         dword ptr [p1],eax  
    int Temp2 = 20;
013A17C5  mov         dword ptr [Temp2],14h  
    int &p2 = Temp2;
013A17CC  lea         eax,[Temp2]  
013A17CF  mov         dword ptr [p2],eax  

    */

    /*
    引用就是編譯器做限制的指針
    引動的地址對使用者是隱藏的
    指針比較靈活,操作失誤可能會產生嚴重後果,
    C++推薦使用引用
    */

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