C++Primer學習之一引用和指針

一.引用

引用是一種複合類型,引用分爲左值引用和右值引用,其中右值引用時C++11提出來的,

常說的引用其意爲左值引用。注意:引用不是對象,它是一個對象(變量)的別名,不能改變引用的對象,故必須在初始化的確定引用的對象。

 

(1)引用(左值引用)

引用的類型必須和被引用變量的類型一致,但有兩種例外情況。

①const引用

double dval = 3.14;
Const int &r1 = dval;

其內部轉化爲:

Const int temp = dval;
Const int &r1 = temp;


temp是一個臨時量,即是一個未命名的對象。所以如果r1不是常量引用,那麼即是允許通過引用改變常量了,故C++語言將它歸爲非法,編譯報錯。

②C++Primer p534 // 看到再完善

 

(2)右值引用 // 看到再完善

C++Primer p471

 

二. 指針

關於const與constexpr見下一篇文章詳細介紹。

(1)指針和const

如:

Const int * const p; // 這裏的P是一個常量指針(右邊const確定),指向整形常量(左邊const確定)。


(2)指針和constexpr

如:

Constexpr int *p1; // 這裏的p1是一個指向整形常量指針。
Constexpr const int *p2; //這裏的p2是指向整形常量的常量指針。


(3)指針和類型別名

如:

typedef char *pstring; 
Const pstring ctrs = 0;//cstr是指向char的常量指針 
Const char * str = 0; // str是指向const char的指針
Const pstring *ps; // ps是一個指針,它的對象是指向char的常量指針

 

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