c++ primer 第二章閱讀筆記

weixin_41874599發表於2019-02-28

變數和基本型別
 ● 切勿混用帶符號型別和無符號型別,當帶符號型別取值為負數時候,帶符號數會自動轉為無符號型別
● 十進位制的字面形是有符號型別,八進位制(以0開始),十六進位制(以0x或0X開始)可以是有符號型別
,也可以是無符號型別
● 浮點形字面形是一個double
● 單引號為字元自面型,雙引號為字串字面型
● 注意:初始化不是賦值,初始化的含義是建立變數的時候賦予其一個初始值,而複製的含義是把物件當
前的值擦除,而以一個新的值來代替。

變數初始化
● 列表初始化
● 預設初始化
● 區別變數的定義與初始化
● c++是一種靜態型別的語言,其含義是在編譯階段檢查型別。其中檢查型別的過程稱為型別檢查。
● 複合型別


引用
● 引用只能繫結在物件上,而不能與字面值或某個表示式的計算結果繫結在一起
● 引用型別的初始值只能是一個物件,並且只能是一個int型的物件。
指標
● 指標的型別要和所指向物件的型別一致,不然報錯。
● 如果指標指向了一個物件,則允許使用解引用符(*)來訪問該物件。(解引用操作僅僅適用
於那些確實指向了某個物件的有效指標)
● 注意:變數未初始化和指標未初始化在除錯中是很困難的,因此需要確認初始化所有的指標。
● void*指標


指標的兩種寫法


int* p 或者int *p
指標與引用的區別


是一種特殊的指標型別,可以存放任意物件的地址。
引用本身並不是一個物件,而指標本身是一個物件。
const
● 如果想在多個檔案之間共享const 物件,必須在變數的定義之前新增extern關鍵字。
● 對const的引用,與普通的引用不同的是,對常量的引用不能被用作修改它所繫結的物件。
● 指向常量的指標,類似與常量的引用,指向常量的指標不能用於改變其所指物件的值。
● 指向常量的引用與指向常量的指標,共同點在於並沒有要求所指物件必須是一個常量,只是要
求不能通過引用或指標改變物件的值,並沒有規定那個物件的值不能通過其他途徑改變。
● 常量指標,本身是一個常量,但是不意味著不能通過指標修改其所指的物件的值。
● 重點:


頂層和底層const
constexpr 和常量表示式
● 常量表示式,是指值不會改變並且在編譯過程就能得到計算結果的表示式。
● 包括(1.字面值。2.用常量表示式初始化的const物件也是常量表示式。)

相關文章