1. 程式人生 > >C++中int *a; int &a; int & *a; int * &a

C++中int *a; int &a; int & *a; int * &a

C++中指標和應用的不同混用方式往往具有截然不同的語義,所以這裡詳細地對幾種指標和引用的混用方式進行區分,指標和引用的混用常見的如下面幾種:

int i;
int *a = &i;		//這裡a是一個指標,它指向變數i
int &b = i;		    //這裡b是一個引用,它是變數i的引用(別名)
int * &c = a;		//這裡c是一個引用,它是指標a的引用
int & *d;	        //這裡d是一個指標,它指向引用,但引用不是實體,所以這是錯誤的

區分技巧:在分析上面程式碼時,可以從變數識別符號開始從右往左看,最靠近識別符號的是變數的本質型別,而再往左即為對變數型別的進一步修飾。

舉例 :

int * & a;

識別符號a的左邊緊鄰的是&,證明a是一個引用變數,而再往左是*,可見a是一個指標的引用,再往左是int,可見a是一個指向int型別的指標的引用。