C 學習筆記(2) 指標與const成員函式

2021-07-26 23:31:16 字數 974 閱讀 1403

一、指標型別

指標指向乙個位址,該位址儲存著一變數值。根據指標所指向的位址、該位址的值的固定與否,將指標分為「指標

常量」、「常指標」與「指向常量的常指標」。

1. 指標常量:int * const p

從字面意思可以看出,指標是乙個常量,也就是位址不能被修改,特點是指標指向的數值可以改變,然而指標所儲存的位址卻不可以改變。

2. 常指標:const int * p

特點是指標所儲存的位址可以改變,然而指標所指向的值卻不可以改變。同理,當新增*p = a時,會發生編譯錯誤。

3. 指向常量的常指標:const int const * p

特點是指標所儲存的位址不可變,指標所指向的數值也不可變。

二、野指標

。與空指標不同,野指標無法通過簡單地判斷是否為 null

避免,而只能通過養成良好的程式設計習慣來盡力減少。其成因有:指標未初始化,指標釋放後未置空,指標操作超越變數作用域。所以,在宣告指標時要進行初始化(置null),釋放完記憶體後對指標進行置空。詳細參閱野指標。

三、const成員函式(類內)

類的成員函式在宣告時,會有在成員函式的引數列表後加const進行修飾的情況,稱為const成員函式,這個const指明了這個函式不會修改該類的任何成員資料的值,稱為常量成員函式。加了const的成員函式可以被非const物件和const物件呼叫,但不加const的成員函式只能被非const物件調 用。詳細參考c++中的const成員函式(函式宣告後加const,或稱常量成員函式)用法詳解。

事實上,

我們都知道在呼叫成員函式的時候編譯器會將物件自身的位址作為隱藏引數傳遞給函式,在const成員函式中,既不能改變this所指向的物件,也不能改變this所儲存的位址,this的型別是乙個指向const型別物件(常物件)的const指標。

四、const加在函式宣告前後的區別

const加在函式宣告前,表示返回值是個常量,加在後面表示const成員函式。

C語言(九) 指標(3)指標與const

表示一旦得到了某個變數的位址,不能再指向其他變數 int i 0 int const q i q是 const q 20 ok q error表示不能通過指標去修改這個變數 int i 0 int j const int p i const int p 等同於 int const p p 20 er...

go學習筆記 2指標

go 語言中指標是很容易學習的,go 語言中使用指標可以更簡單的執行一些任務。接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。執行以上 輸出結果為 現在我們已經了解了什...

C 學習筆記 四 指標(2)轉

分類 c 學習筆記 2010 04 03 14 11 283人閱讀 函式和函式指標 最近在看 寫 的人很喜歡用 函式和函式指標。一直覺得 函式和函式指標挺神秘的,所以查了一些資料,來與大家一起來分享。什麼是 函式 簡而言之,函式就是乙個通過函式指標呼叫的函式。如果你把函式的指標 位址 作為引數傳遞給...