什麼是引用型別引用和指標的區別

  引用型別是由型別的實際值引用***類似於指標***表示的資料型別。那麼你對引用型別瞭解多少呢?以下是由小編整理關於什麼是引用型別的內容,希望大家喜歡!

  引用型別的簡介

  “引用”***reference***是c++的一種新的變數型別,是對C的一個重要補充。它的作用是為變數起一個別名。假如有一個變數a,想給它起一個別名,可以這樣寫:int a;int &b=a;

  這就表明了b是a的“引用”,即a的別名。經過這樣的宣告,使用a或b的作用相同,都代表同一變數。在上述引用中,&是“引用宣告符”,並不代表地址。

  不要理解為“把a的值賦給b的地址”。引用型別的資料儲存在記憶體的堆中,而記憶體單元中只存放堆中物件的地址。宣告引用並不開闢記憶體單元,b和a都代表同一變數單元。

  注意:在宣告引用變數型別時,必須同時使之初始化,即宣告它代表哪一變數。在宣告一個變數的引用之後,在本函式執行期間,該引用一直與其代表的變數相聯絡,不能再作為其他變數的別名。

  引用和指標的區別

  看例項吧:

  引用是C++中的概念,初學者容易把引用和指標混淆一起。

  下面的程式中,n是m的一個引用***reference***,m是被引用物***referent***。

  int m;

  int &n = m;

  n相當於m的別名***綽號***,對n的任何操作就是對m的操作。

  所以n既不是m的拷貝,也不是指向m的指標,其實n就是m它自己。

  引用的規則

  ***1***引用被建立的同時必須被初始化***指標則可以在任何時候被初始化***。

  ***2***不能有NULL引用,引用必須與合法的儲存單元關聯***指標則可以是NULL***。

  ***3***一旦引用被初始化,就不能改變引用的關係***指標則可以隨時改變所指的物件***。

  以下示例程式中,k被初始化為i的引用。

  語句k = j並不能將k修改成為j的引用,只是把k的值改變成為6。

  由於k是i的引用,所以i的值也變成了6。

  int i = 5;

  int j = 6;

  int &k = i;

  k = j; // k和i的值都變成了6;

引用和指標的區別