1. 程式人生 > >c++中引用的實質

c++中引用的實質

ons 打印 成功 引用 真的 剛才 int 產生 cat

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;
}

c++中引用的實質