<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C++ 中引用和指針的關系

    時間:2025-11-08 21:30:51 C語言 我要投稿

    C++ 中引用和指針的關系

      C語言傳遞參數均是以值傳遞,另外也可以傳遞指針。下面是小編分享的C++ 中引用和指針的關系,一起來看一下吧。

      1.引用在定義時必須初始化,指針沒有要求

      int &rNum; /pic/p>

      int *pNum; /pic/p>

      2. 一旦一個引用被初始化為指向一個對象,就不能再指向

      其他對象,而指針可以在任何時候指向任何一個同類型對象

      int iNum = 10;

      int iNum2 = 20;

      int &rNum = iNum;

      &rNum = iNum2; /pic/p>

      3. 沒有NULL引用,但有NULL指針。

      int *pNum = NULL; /pic/p>

      int &rNum = NULL;/pic/p>

      4. 在sizeof中含義不同:引用結果為引用類型的大小,但指針始終是地址空間所占字節個數。

      char c1 = 1;

      char* pc = &c1;

      char& rc = c1;

      cout<<sizeof(pc)<<sizeof(rc)<<endl; /pic/p>

      5. 引用自加改變變量的內容,指針自加改變了指針指向

      rNum++; /pic/p>

      pNum++; /pic/p>

      6. 有多級指針,但是沒有多級引用

      int &&rNum ; /pic/p>

      int **ppNum; /pic/p>

      7.引用比指針使用起來相對更安全

      指針和引用的底層實現

      int Num = 10;

      012213BE mov     dword ptr [Num],0Ah

      int &rNum = Num;

      012213C5 lea     eax,[Num]

      012213C8 mov     dword ptr [rNum],eax

      int *pNum =&Num;

      012213CB lea     eax,[Num]

      012213CE mov     dword ptr [pNum],eax

      底層的實現方式相同,都是按照指針的方式來實現的


    【C++ 中引用和指針的關系】相關文章:

    C++ 中指針和引用區別有哪些01-09

    C++ this指針詳解08-28

    C++返回對象和返回引用03-14

    關于C和C++函數的相互引用02-25

    c++ const引用與非const引用02-07

    C和C++的關系解說01-17

    c++函數指針使用示例02-09

    C++函數指針學習教程11-09

    Java中對象和引用的具體區別09-12

    • 相關推薦
    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人