亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

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

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

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

  指針通過某個(gè)指針變量指向一個(gè)對(duì)象后,對(duì)它所指向的變量間接操作。

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

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

  拓展閱讀:

  引用:

  (1)&在此不是求地址運(yùn)算,而是起標(biāo)識(shí)作用。

  (2)類型標(biāo)識(shí)符是指目標(biāo)變量的類型。

  (3)聲明引用時(shí),必須同時(shí)對(duì)其進(jìn)行初始化。

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

  int a=2,int &ra=a;

  a為目標(biāo)原名稱,ra為目標(biāo)引用名。給ra賦值:ra=1; 等價(jià)于 a=1;

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

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

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

  但是可以這樣寫:

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

  ref[0] = 35; //錯(cuò)誤

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

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

  pt1.offset(12,12);

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

  引用必須在定義時(shí)馬上被初始化,因?yàn)樗仨毷悄硞(gè)東西的同義詞。你不能先定義一個(gè)引用后才

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

  Point &pt3;

  pt3=pt1;

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

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

  指針:

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

  C++標(biāo)準(zhǔn)規(guī)定,指針分為兩類:

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

  function pointer type:指代一個(gè)函數(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