在最後一種情況下,指標是唯讀的,也就是 p3 本身的值不能被修改;在前面兩種情況下,指標所指向的資料是唯讀的,也就是 p1、p2 本身的值可以修改(指向不同的資料),但它們指向的資料不能被修改。(資料上)const
int* p1;
intconst
* p2;
int*
const p3;
初學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的指向
表示不能更改p4的指向,也不能通過*p4更改指向的資料。const
int*
const 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 編譯器會在編譯過程中,把所有用...