2.基本內(nèi)置類型
- 帶符號數(shù)與無符號數(shù)操作時,會變成無符號數(shù)。如,-1會變成255
- 定義于函數(shù)體內(nèi)的內(nèi)置類型的對象如果沒有初始化,則其值未定義。在函數(shù)體外默認(rèn)是0。類的對象如果沒有顯示初始化,其值由類確定。
const int *p=nullptr;//p是一個指向整形常量的指針
constexpr int *q=nullptr;//q是一個指向整形的常量指針
typedef char *ps;
const ps cstr=0;//常量指針
const ps *p;//指向常量指針
//不能把別名帶入理解,是錯誤的
- auto會忽略頂層const,底層const會保留。auto賦值等號右邊是一個引用時,auto類型是沒有引用的。
- decltype返回操作數(shù)的數(shù)據(jù)類型。如果表達(dá)式是一個變量,會返回變量的類型(包括const和引用),如果表達(dá)式內(nèi)容是解引用操作,會得到引用類型;如果是加了括號的表達(dá)式,會得到引用
3.字符串、向量和數(shù)組
- 不能把字面值直接相加
- 使用數(shù)組作為一個auto變量的初始值時,推斷得到的類型是指針而非數(shù)組
- 用for語句處理多維數(shù)組時,除了最內(nèi)層的循環(huán)外,其他所有的控制變量都應(yīng)該是引用類型
4.表達(dá)式
- static_cast:只要不包含底層const,都可以用來類型轉(zhuǎn)化
- const_cast: 只能改變對象的底層const性質(zhì)(去掉或增加)
- reinterpret_cast:強(qiáng)制轉(zhuǎn)化,很危險
6.函數(shù)
- 當(dāng)用實(shí)參初始化形參時會忽略掉頂層const。形參的頂級const被忽略了。而底層const不會被忽略。
- 如果形參數(shù)量未知,但類型相同,可以用標(biāo)準(zhǔn)庫的
initializer_list類型的形參,這是一個模板類型。 - 調(diào)用一個返回引用的函數(shù)得到左值,其他類型得到右值。如果返回類型是常量引用,則不能給結(jié)果賦值。