C primer筆記 指標

2021-08-22 14:48:29 字數 2035 閱讀 2412

1、指標存放某個物件的位址,要想獲取該位址,需要使用取位址符(操作符&);

定義指標型別的方法將宣告符寫成*d的形式,其中d是變數名。

引用不是物件,沒有實際位址,不能定義指向引用的指標;

1、指向乙個物件;

2、指向緊鄰物件所佔空間的下乙個位置;

3、空指標,意味著指標沒有指向任何物件。

4、無效指標,也就是上述情況之外的其他值。

3、如果指標指向了乙個物件,則允許使用解引用符(操作符*)來訪問該物件。

4、緊隨型別名的是宣告符,出現在表示式中的是操作符。

5、空指標不指向任何物件,最直接的辦法是用字面值nullptr來初始化指標,也可以通過將指標初始化為字面值0來生成空指標。過去的指標會用到乙個名為null的預處理變數來給指標賦值,這個變數在標頭檔案cstdlib中定義,它的值就是0.

(把int變數直接賦給指標是錯誤的操作,即使int變數的值恰好等於0也不行)

6、要想搞清楚一條賦值語句到底是改變了指標的值還是改變了指標所指物件的值,最好的辦法就是記住賦值永遠改變的是等號左側的物件。

7、只要指標擁有乙個合法值,就能將它用在條件表示式中,如果指標的值是0,條件取false,任何非0 指標對應的條件值都是true。

8、兩個型別相同的合法指標進行比較,如果兩個指標存放的位址值相同,則它們相等;反之它們不相等。

9、void*可用於存放任意物件的位址,但不允許使用void*指標操縱它所指向的物件。當函式返回void*型別時表示返回乙個特殊的指標型別。

10、單目運算子*的優先順序比++高

11、c++使用**操作符指派乙個指標指向另乙個指標。

13、函式指標

指向函式而非指向物件的指標,函式指標也指向某個特定的函式型別,函式型別由其返回型別以及形參表確定,而與函式名無關。

bool (*pf)(const string &, const string &);

將pf宣告為指向函式的指標,它所指向的函式帶有兩個const string &型別的形參和bool型別的返回值。(*pf兩側的括號是必需的)

14、函式指標只能通過同型別的函式或函式指標或0值常量表示式進行初始化或賦值,將函式指標初始化為0,表示該指標不指向任何函式,指向不同函式型別的指標之間不存在轉換。

15、指向函式的指標可用於呼叫它所指向的函式,可以不需要使用解引用操作符,直接通過指標呼叫函式。

16、只有當指標已經初始化,或被賦值為指向某個函式,才能用來呼叫函式。

17、函式的形參可以是指向函式的指標。函式可以返回指向函式的指標。

閱讀函式指標宣告的最佳方法是從宣告的名字開始由里而外理解。

18、允許將形參定義為函式型別,但函式的返回型別則必須是指向函式的指標,而不能是函式。

19、c++允許使用函式指標指向過載的函式;

20、指標的型別:把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別;

指標所指向的型別:把指標宣告語句中的指標名字和名字左邊的指標宣告符*去掉,剩下的就是指標所指向的型別

21、指標本身佔據4個位元組的寬度(32位機器);

22、當乙個指標表示式的結果指標已經明確地具有了指標自身佔據的記憶體的話,這個指標表示式就是乙個左值,否則就不是乙個左值。

23、什麼是野指標?

野指標是指向不可用記憶體的指標。任何指標變數在被建立時,不會自動成為null指標(空指標),其預設值是隨機的,此時的指標就是野指標。

當指標呼叫free或delete釋放後,未能將其設定為null,也會導致該指標變為野指標,此時雖然free或delete把指標所指的記憶體給釋放掉了,但它們並沒有把指標本身釋放掉。

第三個造成野指標的原因是指標操作超越了變數的作用範圍。

《C primer 讀書筆記》 指標

指標持有另乙個物件的位址,使我們能夠間接地操作這個物件 指標的型別可以指示編譯器怎樣解釋特定位址上記憶體的內容,以及該記憶體區域應該跨越多少記憶體單元。在逗號分隔的識別符號列表中,每個將被用作指標的識別符號前都必須加上解引用操作符 lp 是乙個指向 long型別物件的指標,lp2則是乙個 long ...

c primer筆記 智慧型指標

智慧型指標的陷阱 基本規範 1.不使用相同的內建指標值初始化 或reset 多個智慧型指標。double free 2.不delete get 返回的指標。double free 3.不使用get 初始化或reset另乙個智慧型指標。double free 4.如果你使用get 返回的指標,記住當最...

C Primer 筆記 智慧型指標

1.新的標準庫提供了兩種智慧型指標型別,shared ptr允許多個指標指向同乙個物件,unique ptr則獨佔所指的物件。標準庫還定義了乙個名為weak ptr的伴隨類,它是一種弱引用,指向shared ptr所管理的物件。2.智慧型指標也是模板,預設初始化的智慧型指標中儲存著乙個空指標。3.智...