筆記 C const與指標

2021-10-23 04:06:09 字數 1122 閱讀 7032

const

int* p1;

intconst

* p2;

int*

const p3;

在最後一種情況下,指標是唯讀的,也就是 p3 本身的值不能被修改;在前面兩種情況下,指標所指向的資料是唯讀的,也就是 p1、p2 本身的值可以修改(指向不同的資料),但它們指向的資料不能被修改。(資料上)

初學const,感覺資料上的有些不太理解,自己編寫之後,以下是我的理解方法:

const 再 int*前,或者const在*前表示,p1 p2所指向的資料不能通過*p12來進行修改,const在int*後,表示p3無法指向其他資料。

int a =

100;

int b =

200;

int c =

300;

int d =

400;

const

int* p1 =

&a;int

const

* p2 =

&b;int

*const p3 =

&c;*p1 =

500;

//vs報錯,無法通過*p1更改指向的數值

p1 =

&d;//正確,可以更改p1的指向

*p3 =

500;

//正確,可以通過*p3修改指向的資料

p3 =

&d;//vs報錯,無法更改p3的指向

const

int*

const p4;

表示不能更改p4的指向,也不能通過*p4更改指向的資料。

編寫乙個從字串中查詢特定字元ch的函式:

#include

#include

#pragma warning(disable:4996)

intstrnum

(const

char

* str,

char ch)

}return n;

}int

main()

c const指標與函式呼叫

在我的部落格中,已經討論了動態繫結和靜態繫結,以及在預設引數情況下虛函式的繫結情況。一般情況下,我們 是用非const的基類指標指向派生類物件,如果通過該指標呼叫虛函式則發生的動態繫結,如果我們定義乙個const指標,指向派生類的物件,如果派生類裡定義了同名的虛函式和 const函式,會發生什麼呼叫...

C const物件指標與const指標 (八)

1 例 1.int i 1 const int cptr i cptr 2 出錯,cptr指向的是常量1 cout cptr 注意 指向 const 的指標常用作函式的形參。將形參定義為指向 const 的指標,確保傳遞給函式的實際物件在函式中不因形參而被修改。2 const pointer本身值不...

c const的使用(引用,指標)

1 const 物件,一旦建立後,值就不能在改變,所以要對const物件進行初始化 const int i get size 初始值可以是任意複雜的表示式 const int j 42 對 const int k 錯 2 例 const int bufsize 512 編譯器會在編譯過程中,把所有用...