指針

指針與引用類似,實現了對其他對象的間接訪問。

指針和引用區別:指針本身就是對象,允許對指針賦值和拷貝,在生命週期內可以先後指向不同的對象;指針不需要在定義時賦初值。

引用不是對象,沒有實際地址,不能定義指向引用的指針。

給指針賦值就是令它存一個新的地址,從而指向新的對象;而引用定義後無法再綁定到另外的對象。

指向指針的引用

int a = 12;
int *pa = &a;           // pa爲int型指針
int *&ra = pa;          // ra爲對指針pa的引用

int b = 22;
int *pb = &b;
pa = &b;                // 正確,指針的對象可以改變
ra = pb;                // 錯誤,引用的對象爲指針,初始化後不能改變

對於複雜的指針或引用的聲明,從右向左閱讀。ra首先是一個引用,引用的對象是一個指針,該指針是int型,所以ra是一個int指針的引用。

空指針

int *p1 = nullptr;     // 推薦
int *p2 = 0;           // 字面常量0
int *p3 = NULL;        // NULL爲預處理變量,在頭文件cstdlib中定義

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章