亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • C++面試常用問題:"引用"與指針的區(qū)別

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

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

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

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

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

      拓展閱讀:

      引用:

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

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

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

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

      int a=2,int &ra=a;

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

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

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

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

      但是可以這樣寫:

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

      ref[0] = 35; //錯誤

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

      需要特別強調(diào)的是引用并不產(chǎn)生對象的副本,僅僅是對象的同義詞。因此,當下面的語句執(zhí)行后:

      pt1.offset(12,12);

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

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

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

      Point &pt3;

      pt3=pt1;

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

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

      指針:

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

      C++標準規(guī)定,指針分為兩類:

      object pointer type:指向void或?qū)ο箢愋,表示對象在?nèi)存中的字節(jié)地址或空指針。

      function pointer type:指代一個函數(shù)

    【C++面試常用問題:"引用"與指針的區(qū)別】相關(guān)文章:

    簡述數(shù)組與指針的區(qū)別12-13

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

    C++筆試題:關(guān)于鏈表和指針11-22

    筆試與面試的區(qū)別09-02

    面試常用英語問題09-28

    英語面試常用問題09-10

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

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

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