有關const的一些事
1.const對象必須初始化,因為const對象一旦創建,其值不能再被改變。
2.const對象是常量,因此可以賦予其字面值。
3.普通變量默認支持多文件下共享,而const默認不支持,需要在定義和聲明是都加上關鍵字extern才能在多個文件中使用。
4.所謂“常量引用”指的是“對const的引用”,而非該引用本身是常量,因為引用不算對象。
5.常量引用初始化可以使用任意表達式作為初始值,只要表達式的結果可以轉換成引用的類型即可。
6.對const的引用可以綁定非常量,但無法改變非常量的值。
7.const <type> *ptr 是指向常量的指針,無法修改指向對象的值,屬于底層const;<type> *const ptr 是常量指針,意思是指針本身是常量,一旦初始化完成,其保存的地址將不允許被改變,屬于頂層const。
8.常量表達式指的是在編譯過程中就能得到結果的表達式,可以用“constexpr+常量表達式”的形式來聲明一個常量;constexpr定義的指針屬于頂層const。
類型別名的兩種辦法
1.typedef double w;
2.using dou = double;
關于auto
1.auto可以根據表達式推斷變量類型,使用auto聲明多個變量需要保證其都從屬于相同的基本數據類型。
2.auto會自動忽略頂層const,保留底層const,可以通過在auto前加上const來保留頂層const。
關于declitype
暫時沒完全搞明白,先不寫了
關于頭文件保護符
#ifdef 當且僅當變量已定義時為真,#ifndef 當且僅當變量未定義時為真,一旦其為真就會執行后續操作,直到遇到#endif,此方法可以防止由于引入自定義頭文件而導致的重復引用。
浙公網安備 33010602011771號