1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. C++面試常用問題:"引用"與指針的區別

        時間:2020-11-20 17:57:06 筆試題目 我要投稿

        C++面試常用問題:"引用"與指針的區別

          指針通過某個指針變量指向一個對象后,對它所指向的變量間接操作。

        C++面試常用問題:"引用"與指針的區別

          程序中使用指針,程序的可讀性差;而引用本身就是目標變量的別名,對引用的操作就是對目標變量的操作。此外,就是對函數傳ref和pointer的區別。

          拓展閱讀:

          引用:

          (1)&在此不是求地址運算,而是起標識作用。

          (2)類型標識符是指目標變量的類型。

          (3)聲明引用時,必須同時對其進行初始化。

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

          int a=2,int &ra=a;

          a為目標原名稱,ra為目標引用名。給ra賦值:ra=1; 等價于 a=1;

          (5)對引用求地址,就是對目標變量求地址。&ra與&a相等。即我們常說引用名是目標變量名的一個別名。別名一詞好像是說引用不占據任何內存空間。但是編譯器在一般將其實現為const指針,即指向位置不可變的指針。即引用實際上與一般指針同樣占用內存。

          (6)不能建立引用的數組。因為數組是一個由若干個元素所組成的集合,所以無法建立一個由引用組成的'集合。但是可以建立數組的引用.

          例如: int& ref [3]= {2,3,5};//聲明ref引用的數組錯誤

          但是可以這樣寫:

          const int (&ref)[3] ={2,3,5}; //gcc編譯的時候加上選項 -std=c++0x

          ref[0] = 35; //錯誤

          為什么要加上const ,因為{2,3,5}此時是個字面值數組,是保存在代碼段里,只讀的屬性,如果不加,編譯錯誤,而且后面對ref[0]的賦值也不會成功.

          需要特別強調的是引用并不產生對象的副本,僅僅是對象的同義詞。因此,當下面的語句執行后:

          pt1.offset(12,12);

          pt1和pt2都具有(12,12)的值。

          引用必須在定義時馬上被初始化,因為它必須是某個東西的同義詞。你不能先定義一個引用后才

          初始化它。例如下面語句是非法的:

          Point &pt3;

          pt3=pt1;

          那么既然引用只是某個東西的同義詞,它有什么用途呢?

          下面討論引用的兩個主要用途:作為函數參數以及從函數中返回左值。

          指針:

          C++標準中規定,“指針”概念不適用于成員指針(不包含指向靜態成員的指針)。

          C++標準規定,指針分為兩類:

          object pointer type:指向void或對象類型,表示對象在內存中的字節地址或空指針。

          function pointer type:指代一個函數

        《C++面試常用問題:"引用"與指針的區別.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        资深写手 • 1对1服务

        文章代写服务

        品质保证、原创高效、量身定制满足您的需求

        点击体验

        【C++面試常用問題:"引用"與指針的區別】相關文章:

        簡述數組與指針的區別12-13

        c語言指針面試常見問題09-28

        C++筆試題:關于鏈表和指針11-22

        筆試與面試的區別09-02

        面試常用英語問題09-28

        英語面試常用問題09-10

        俄語常用的面試問題12-11

        HR面試常用的英語問題09-09

        常用面試題目空指針到底是什么12-13

        文章
        代写

        文章代写服务

        资深写手 · 帮您写文章

        品质保证、原创高效、量身定制满足您的需求

        点击体验
        ai帮你写文章
        一键生成 高质量 不重复
        微信扫码,即可体验
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>

            1. C++面試常用問題:"引用"與指針的區別

                指針通過某個指針變量指向一個對象后,對它所指向的變量間接操作。

              C++面試常用問題:"引用"與指針的區別

                程序中使用指針,程序的可讀性差;而引用本身就是目標變量的別名,對引用的操作就是對目標變量的操作。此外,就是對函數傳ref和pointer的區別。

                拓展閱讀:

                引用:

                (1)&在此不是求地址運算,而是起標識作用。

                (2)類型標識符是指目標變量的類型。

                (3)聲明引用時,必須同時對其進行初始化。

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

                int a=2,int &ra=a;

                a為目標原名稱,ra為目標引用名。給ra賦值:ra=1; 等價于 a=1;

                (5)對引用求地址,就是對目標變量求地址。&ra與&a相等。即我們常說引用名是目標變量名的一個別名。別名一詞好像是說引用不占據任何內存空間。但是編譯器在一般將其實現為const指針,即指向位置不可變的指針。即引用實際上與一般指針同樣占用內存。

                (6)不能建立引用的數組。因為數組是一個由若干個元素所組成的集合,所以無法建立一個由引用組成的'集合。但是可以建立數組的引用.

                例如: int& ref [3]= {2,3,5};//聲明ref引用的數組錯誤

                但是可以這樣寫:

                const int (&ref)[3] ={2,3,5}; //gcc編譯的時候加上選項 -std=c++0x

                ref[0] = 35; //錯誤

                為什么要加上const ,因為{2,3,5}此時是個字面值數組,是保存在代碼段里,只讀的屬性,如果不加,編譯錯誤,而且后面對ref[0]的賦值也不會成功.

                需要特別強調的是引用并不產生對象的副本,僅僅是對象的同義詞。因此,當下面的語句執行后:

                pt1.offset(12,12);

                pt1和pt2都具有(12,12)的值。

                引用必須在定義時馬上被初始化,因為它必須是某個東西的同義詞。你不能先定義一個引用后才

                初始化它。例如下面語句是非法的:

                Point &pt3;

                pt3=pt1;

                那么既然引用只是某個東西的同義詞,它有什么用途呢?

                下面討論引用的兩個主要用途:作為函數參數以及從函數中返回左值。

                指針:

                C++標準中規定,“指針”概念不適用于成員指針(不包含指向靜態成員的指針)。

                C++標準規定,指針分為兩類:

                object pointer type:指向void或對象類型,表示對象在內存中的字節地址或空指針。

                function pointer type:指代一個函數