dval = 3.14159;
*cptr = 3.14159;//錯誤 cptr是乙個指向const的指標
double *ptr = &dval;//正確ptr指向非const物件
*ptr = 2.72;//正確
cout << *cptr;
指向const的指標cptr實際上指向了乙個非const物件。儘管它所指向物件非const,但仍然不能使用cptr修改該物件的值,系統會把它所指的所有物件都視為const;
如果指向const的指標所指的物件並非const,則可直接給該物件賦值或間接地利用普通的非const指標修改其值,畢竟這個值不是const。
注:不能保證指向const的指標所指的物件的值一定不可修改。
在實際程式中,指向const的指標常用作函式的形參。將形參定義為指向const的指標,以此確保傳遞給函式的實際物件在函式中不因為形參而被改變。
除了指向const物件的指標外,c++還提供了const指標--本身值不能修改。
int errnumb = 0;
int *const curerr = &errnum; //curerr是指向int型物件的const指標
const指標的值不能修改,意味著不能使curerr指向其他物件。任何企圖給const指標賦值的行為(即使給curerr賦回同樣的值)都會導致編譯時的錯誤
於任何const量一樣,const指標也必須在定義時初始化。
指標本身是const,該指標所指向物件的值能否修改完全取決於該物件的型別。
指標的型別 指標所指向 指向指標的引用
從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部 分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各 個指標的型別 int ptr 指標的型別是int char ptr 指標的型別是char int ptr 指標的型別是int int ptr 3 指標的型別是int 3...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...