<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

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

    時間:2025-04-01 00:09:42 C語言 我要投稿
    • 相關推薦

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

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

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

      int &rNum; //未初始化不能通過編譯

      int *pNum; //可以

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

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

      int iNum = 10;

      int iNum2 = 20;

      int &rNum = iNum;

      &rNum = iNum2; //不能通過

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

      int *pNum = NULL; //可以

      int &rNum = NULL;//不可以

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

      char c1 = 1;

      char* pc = &c1;

      char& rc = c1;

      cout<<sizeof(pc)<<sizeof(rc)<<endl; //輸出4 1

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

      rNum++; //指針的內容改變

      pNum++; //指針改變

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

      int &&rNum ; //不可以

      int **ppNum; //可以

      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++ 中指針和引用區別有哪些09-05

    C++ this指針詳解07-04

    C++返回對象和返回引用05-31

    關于C和C++函數的相互引用09-06

    c++ const引用與非const引用09-15

    C和C++的關系解說10-12

    c++函數指針使用示例07-26

    C++函數指針學習教程10-01

    Java中對象和引用的具體區別05-18

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