1. 指向const物件的指標指向const物件的指標是乙個指標,但是不能通過它來修改它所指向的物件的值。
宣告方法:
const int *p;
const指標物件在初始化後不允許對指標指向的物件的值進行修改,因此不能用乙個普通的指標指向乙個const
指標物件。否則,如果可以用普通指標修改const指標物件的值,那就失去了const的意義。例如:
const int i = 1;
int * p = &i; // error!
const int *p = &i; // ok!
需要注意的地方:
指向const物件的指標本身不是const型別,所以這個指標可以指向另乙個const物件;
指向const物件的指標可以被賦予乙個非const物件的位址,但是不能試圖通過此指標來修改該物件的值。
2. const指標
const指標就是乙個指標,但是它本身是const型別的。所以它初始化後不能再改變它的指向,即不能讓它再指
向乙個新的物件。
宣告方法:
int* const p; // 指向非const物件的const指標
const int* const p; // 指向const物件的const指標
const指標可以指向const物件和非const物件,但是兩者宣告方法不同。使用const指標不可以修改其位址值,但是const指標指向非const物件,可以利用它修改它所指向的物件的值。
要弄清以上兩者的區別,只要明確兩點:
1. 指標本身是const型還是非const型;
2. 指標所指向的物件是const型還是非const型。
const型別變數的值在初始化之後是不允許改變的,那麼const指標的指向就是不能改變的,const物件的值是
不能改變的。
為了區分上述的兩點,有乙個很簡單的方法:
如果指標名前緊鄰的關鍵字是const,那麼它就是乙個const指標;如果宣告指標所指向的物件型別前有const
關鍵字,那麼它就是乙個指向const物件的指標。
const int *p;
int * const p;
指向const物件指標 const指標
指向const物件指標 const指標 2010 07 22 16 40 1.指向const物件的指標 指向const物件的指標是乙個指標,但是不能通過它修改它指向的物件的值.宣告方法 const int p 指向const物件的指標在初始化後不允許對它指向的物件的值進行修改.const int i...
指向const物件指標 const指標
參見 110頁 陣列和指標 一節 指向const物件指標關鍵理解 const double cptr 指向const物件指標關鍵理解 可以指向非const物件,但不能通過該指標修改所指向物件的值,const指標關鍵理解 int const curerr errnumb const指標關鍵理解 cur...
const指標和指向const物件的指標
1.有關const指標和指向const物件指標的一道題 首先要說明的是怎麼來判斷const指標還是指向const的指標 如果const後面跟的是型別,那麼const是用來修飾物件的,所以它是指向const物件的指標 但是如果const後面跟的是指標本身,那麼const是用來修飾指標的,所以它是con...