有修飾自己的const就不能再被賦值,且一定要初始化(reference同樣)
等號右邊修飾自己的const在賦值時會被忽略
指標的型別有const type(不能用指標修改所指內容)和 type(可以)
其中 type型別的指標可以賦值給const type型別,因為這樣做相容,反過來就不行。想想也是,從可以修改指向的內容到不能修改所指範圍變窄了。
注:這四句話從《c專家程式設計》中總結出來修飾自己的const 指的是 限定符const
type 指的是 資料型別,如int等
要注意指標的const int是型別!!千萬不要把const int型別跟限定符const搞混,如果你覺得各種const很混亂就是這裡沒理解好!
在《c++ primier》中採用了頂層const和底層const這兩種說法,我覺得這樣更容易弄混,他把const int中的const斷章取義單獨把const拎出來起了個名字叫底層const。至於頂層const就是指限定符const。
書中說到賦值的條件:
兩個運算元都是指向有限定符或無限定符的相容型別的指標,左邊指標所指向的型別必須具有右邊指標所指向型別的全部限定符。
自行檢驗我說的對不對,變數命名還是用了top_level_const 和low_level const這種說法(不然真不知道怎麼命名)
帶有lc字樣的是他是const type型別,因此不能修改所指的內容
帶有tc字樣的是帶有限定符const,因此本身不能被修改
在函式引數傳遞的時候喜歡加const來確保安全性40
void c_r(void)
int a;
void fun1(const int a){}
fun1(a); //從沒有限定符const變為有限定符const,可以,這很安全
void fun2(const int& r){}
fun2(a);//const int型別確保了r不能夠修改a,可以,這很安全
void fun3(const int* lc_p){}
fun3(&a);//const int*型別確保了lc_p不能修改a,可以,這很安全
void fun4(const int* const lc_tp_p){}
fun4(&a);//即不能通過lc_tp_p修改a,又不能用乙個新的指標賦值給lc_tp_p,可以,這非常安全
受人歡迎的四句話
自古就有 一言興邦,一言喪邦 的明訓,講話確實是一門藝術。如何說話才能受人歡迎?一 為受窘的人說一句解圍的話。助人不只是金錢 勞力 時間上的付出,說話也可以幫助別人。例如,有些人處在尷尬得不知如何 的窘境時,你及時說出一句幫他解圍的話,也是助人的一種。二 為沮喪的人說一句鼓勵的話。西諺雲 言語賦予我...
受人歡迎的四句話
自古就有 一言興邦,一言喪邦 的明訓,講話確實是一門藝術。如何說話才能受人歡迎?一 為受窘的人說一句解圍的話。助人不只是金錢 勞力 時間上的付出,說話也可以幫助別人。例如,有些人處在尷尬得不知如何 的窘境時,你及時說出一句幫他解圍的話,也是助人的一種。二 為沮喪的人說一句鼓勵的話。西諺雲 言語賦予我...
俞敏巨集的四句話
第一句 優秀是一種習慣 這句話是古希臘哲學家亞里斯多德說的。如果說優秀是一種習慣,那麼懶惰也是一種習慣。人出生的時候,除了脾氣會因為天性而有所不同,其他的東西基本都是後天形成的,是家庭影響和教育的結果。所以,我們的一言一行都是日積月累養成的習慣。我們有的人形成了很好的習慣,有的人形成了很壞的習慣。到...