在我看來,不必太糾結於常量指標和指標常量的漢語名稱,一定要記住用法就好了。
記有一指標,p表示位址,*p表示值。
1、常量指標
書寫方式有const int *p或者int const *p。
在這種情況之下,const始終在*p之前,也就是說const(常量)修飾*p(指標的值)。*p不能修改,就是說該指標指向的值不能修改。
在這種情況之下,*p是唯讀的。
#include using namespace std;
int main()
{ int a = 10;
int const *p = &a;
cout《注意,指標指向的物件不能通過這個指標來修改,可是仍然可以通過原來的宣告修改,也就是說常量指標可以被賦值為變數的位址,之所以叫做常量指標,是限制了通過這個指標修改變數的值。在上例中可以通過改變a來改變*p的值。
2、指標常量
書寫方式是int * const p;
const p表示位址不可改變,也就是說指標常量的位址不可修改。
int a = 10;
int * const p = &a;
此後p始終指向a,不可修改。
3、野指標
迷途指標,也被稱為野指標或懸浮指標,是指將delete 用於指標(從而釋放它指向的記憶體),但沒有將它設定為空時引發。如果隨後你在沒有重新賦值的情況下使用該指標,後果將是不可預料的。
上例中在釋放記憶體後,要將位址指向null。
delete p;
p = null;
為了安全,這是很有必要的。
常量指標 指標常量
int const p 表示p是乙個指向常量的指標,這種情況下,編譯器會講p所指向的物件當作常量處理,即便不是常量。所以無法改變其指向的物件的值,但是指標本身的值即其指向可以發生改變。int const p 表示指標是乙個常量,其本身值 即其指向 不可以修改,但是其指向的值 無論是常量還是變數 可以...
指標常量 常量指標
指標常量 指向常量的指標 const int pa int const pa 兩者等價。因為指向常量的指標有時候會指向常量,所以它具有這個性質 不能靠解引用改變它指向的物件的值 以此保護它所指向的常量的常量性。pa d 不可行 d是已經宣告過的整型 但指標本身的值是可變的 pa d 可行 d是已經宣...
常量指標?指標常量?
今天學習c 的時候,遇到了兩個問題 常量指標?指標常量?我的天啊看了好些遍書本還是模模糊糊的。在網上找了一些寫的文章,才恍然大悟。區別 const int prt 和 int const prt。const int prt 稱為常量指標 指向常量的指標 int const prt 稱為指標常量 該指...