什么是引用類型引用和指針的區(qū)別
引用類型是由類型的實際值引用(類似于指針)表示的數(shù)據(jù)類型。那么你對引用類型了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是引用類型的內(nèi)容,希望大家喜歡!
引用類型的簡介
“引用”(reference)是c++的一種新的變量類型,是對C的一個重要補充。它的作用是為變量起一個別名。假如有一個變量a,想給它起一個別名,可以這樣寫:int a;int &b=a;
這就表明了b是a的“引用”,即a的別名。經(jīng)過這樣的聲明,使用a或b的作用相同,都代表同一變量。在上述引用中,&是“引用聲明符”,并不代表地址。
不要理解為“把a的值賦給b的地址”。引用類型的數(shù)據(jù)存儲在內(nèi)存的堆中,而內(nèi)存單元中只存放堆中對象的地址。聲明引用并不開辟內(nèi)存單元,b和a都代表同一變量單元。
注意:在聲明引用變量類型時,必須同時使之初始化,即聲明它代表哪一變量。在聲明一個變量的引用之后,在本函數(shù)執(zhí)行期間,該引用一直與其代表的變量相聯(lián)系,不能再作為其他變量的別名。
引用和指針的區(qū)別
看實例吧:
引用是C++中的概念,初學(xué)者容易把引用和指針混淆一起。
下面的程序中,n是m的一個引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相當(dāng)于m的別名(綽號),對n的任何操作就是對m的操作。
所以n既不是m的拷貝,也不是指向m的指針,其實n就是m它自己。
引用的規(guī)則
(1)引用被創(chuàng)建的同時必須被初始化(指針則可以在任何時候被初始化)。
(2)不能有NULL引用,引用必須與合法的存儲單元關(guān)聯(lián)(指針則可以是NULL)。
(3)一旦引用被初始化,就不能改變引用的關(guān)系(指針則可以隨時改變所指的對象)。
以下示例程序中,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;
看過“引用和指針的區(qū)別”的人還看了: