修改const指標所指向的值

2021-06-27 04:14:36 字數 764 閱讀 9462

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 第一種可...