指向const物件指標 const指標

2021-05-23 10:46:16 字數 2292 閱讀 7385

指向const物件指標 & const指標

2010-07-22 16:40

1.指向const物件的指標

指向const物件的指標是乙個指標,但是不能通過它修改它指向的物件的值.

宣告方法:

const int *p ;

指向const物件的指標在初始化後不允許對它指向的物件的值進行修改.

const int int_n = 1 ;

const int *point_n = &int_n ;

*ponint_n = 2 ; //錯誤,指向 const 物件的指標在初始化後不允許對它指向的物件的值進行修改.

需要注意的地方:

(1)指向 const 物件的指標本身不是 const 型別,所以這個指標可以指向另乙個 const 物件;

例:const int int_n1 = 1 ;

const int int_n2 = 2 ;

const int *point_n ;

point_n = &int_n1 ; //使 point_n 指向 int_n1

point_n = &int_n2 ; //使 point_n 指向 int_n2

cout << *point_n << endl ;

(2)指向 const 物件的指標可以被賦予乙個非 const 物件的位址,但是不能試圖通過此指標來修改該物件的值.

例:int int_n = 1 ;

const int *point_n = &int_n ;

*point_n = 2 ; //錯誤,指向const物件的指標可以被賦予乙個非 const 物件的位址,但是不能試圖通過此指標來修改該物件的值.

(3)把乙個 const 物件的位址賦給乙個非 const 物件的指標是錯誤的.

例:const int_n = 1 ;

int *point_n = &int_n ; //錯誤,把乙個 const 物件的位址賦給乙個非 const 物件的指標是錯誤的.

(4)不能使用void* 指標儲存 const 物件的位址,應該使用 constvoid* 指標儲存 const 物件的位址.

const int_n = 1 ;

void*point_n = &int_n ; //錯誤,不能使用 void* 指標儲存 const 物件的位址,應該使用 const void* 指標儲存 const 物件的位址.

constvoid*point_n = &int_n ; //正確

2.const 指標

const 指標就是乙個指標,但是它本身是 const 型別的.所以它初始化後不能再改變它的指向,即不能讓它再指向乙個新的物件.

宣告方法:

int *const point_n ; //指向非 const 物件的 const 指標

const int *const point_n ; //指向 const 物件的 const 指標

const 指標可以指向 const 物件和非 const 物件,但是兩者宣告方法不同.

const 指標指向 const 物件時,不可以利用它修改它所指向的物件的值.但是 const 指標指向非 const 物件時,可以利用它修改它所指向的物件的值.

例:int int_n1 = 1 ;

int int_n2 = 1 ;

int *const point_p1 = &int_n1 ; //const 指標 point_p1 指向非 const 物件

const int *const point_p2 = &int_n2 ; //const 指標 point_p1 指向 const 物件

*point_p1 = 2 ; //正確, const 指標指向非 const 物件時,可以利用它修改它所指向的物件的值.

*point_p2 = 2 ; //錯誤, const 指標指向 const 物件時,不可以利用它修改它所指向的物件的值.

3.兩者的區分

其實要弄清以上兩者的區別,只要明確兩點:

(1)指標本身是 const 型還是非 const 型;

(2)指標所指向的物件是 const 型還是非 const 型.

如果指標名前緊鄰的關鍵字是 const,那麼它就是乙個const指標.

如果宣告指標所指向的物件型別前有 const關鍵字,那麼它就是乙個指向 const 物件的指標.

指向const物件指標 const指標

參見 110頁 陣列和指標 一節 指向const物件指標關鍵理解 const double cptr 指向const物件指標關鍵理解 可以指向非const物件,但不能通過該指標修改所指向物件的值,const指標關鍵理解 int const curerr errnumb const指標關鍵理解 cur...

指向const物件的指標 const指標

1.指向const物件的指標指向const物件的指標是乙個指標,但是不能通過它來修改它所指向的物件的值。宣告方法 const int p const指標物件在初始化後不允許對指標指向的物件的值進行修改,因此不能用乙個普通的指標指向乙個const 指標物件。否則,如果可以用普通指標修改const指標物...

const指標和指向const物件的指標

1.有關const指標和指向const物件指標的一道題 首先要說明的是怎麼來判斷const指標還是指向const的指標 如果const後面跟的是型別,那麼const是用來修飾物件的,所以它是指向const物件的指標 但是如果const後面跟的是指標本身,那麼const是用來修飾指標的,所以它是con...