c++ primer plus 對 const 的使用作了較為詳細的介紹,其中將 const 用於指標存在一些微妙的地方,尤其是以下兩種用法:
若將 const 放在 int * 之前,代表 *ps 為 const,不可修改,即 ps 為乙個指向 const int 變數的指標,因此 ps 指向的數值不能被修改,但可以修改 ps 指標的指向,例如將其指向其他變數。int sloth =3;
const
int* ps =
&sloth;
int*
const finger =
&sloth;
另一種相反的定義方式為將 const 放在 int * 之後,表示指標的值 finger 本身為 const, 不可修改,即其指向無法改變,但卻可以通過 *finger 修改指標指向的數值。*ps =20;
//invalid
ps =
&other_variable;
//valid
*finger =20;
//valid
finger =
&other_variable;
//invalid
關鍵字CONST用於指標
通過將變數宣告為const的,可確保變數的取值在整個生命週期內都固定為初始值。這種變數的值不能修改,因此不能將其用作左值。因為指標也是變數,因此也可以將關鍵字const 用於指標。但是指標是特殊的變數,包含的是記憶體位址,可用於修改記憶體中的資料塊。如 const int dir 這種可修改指標的指...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...