二者共同點:
都指向對應的變數
二者差異:
1. 指標本身為乙個實體,引用不是;指標物件儲存對應變數的儲存位址,引用直接指向該位址而非進行儲存。
2. sizeof(指標)返回指標用來儲存物件的位址空間的大小(因為指標本身為乙個實體,有自身被分配的空間),sizeof(引用)返回指向物件的空間大小。
3. 指標初始化後可指向其它單元,引用初始化之後不可再改變。
4. 對引用的操作實為對其指向物件的操作,對指標自身的操作並非如此。
例:int
x = 1;
inty = 2;
intz = 3;
//指標c可以不初始化,可以更改其指向的目標
int* c;
//引用必須初始化,不可以更改其指向的目標 ,int& ra ;
報錯,ra 必須要指定初值
c = &x; c = &y;
//下面只是把y的值賦給 ra 也就是x 而並不是使引用的目標由 對x的引用到對y的引用
int& ra = x;
ra = y;
具體參考:
C 指標和引用
在深入介紹之前我們首先來看一下指標和引用的定義 指標和引用的區別,然後分別針對指標和引用展開討論,深入細節為何有這些差異。指標和引用的定義,下面用通俗易懂的話來概述一下 而宣告指標是可以不指向任何物件,也正是因為這個原因,使用指標之前必須做判空操作,而引用就不必。其次,引用不可以改變指向,對乙個物件...
C 引用和指標
引用和指標看上去差不多,看上去差不多,其實男寶寶和女寶寶是不一樣的 用起來還是有一定差距。本人菜鳥僅將遇到的問題記錄備案,以便日後翻查 ptrfunc.h ifndef ptrfunc h define ptrfunc h typedef int func int,int struct aa end...
C 指標和引用
有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能 到目前為止我們介紹過函式引數傳遞的兩種情況 1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...