酷知吧

位置:首頁 > 教育 > 

指針常量和常量指針的區別

教育2.46W

指針常量的本質是一個常量,並且使用指針來修飾它,那麼説明這個常量的值應該是一個指針,其格式應為:int*const p,而常量指針本質是指針,並且這個指針乃是一個指向常量的指針。其格式為:int const*p或者const int*p。指針常量的值是指針,這個值因為是常量,所以不能被賦值。

指針常量 指針常量和常量指針的區別

在C/C++中,指針常量這樣聲明:只要const位於指針聲明操作符右側,就表明聲明的對象是一個常量,且它的內容是一個指針,也就是一個地址,並且在聲明的時候一定要給它賦初始值。一旦賦值,以後這個常量再也不能指向別的地址。

指針常量 指針常量和常量指針的區別 第2張

常量指針的使用要注意,指針指向的對象不能通過這個指針來修改,可是仍然可以通過原來的聲明修改,也就是説常量指針可以被賦值為變量的地址,之所以叫做常量指針,是限制了通過這個指針修改變量的值。例如:

int a=2014;

const int b=2015;

const int*c=&a;//這是合法的,非法的是對c的使用;

*c=2016;//非法,但可以這樣修改c指向的對象的值:a=2016;

const int*d=&b;//b是常量,d可以指向b,d被賦值為b的地址是合法的。

指針常量 指針常量和常量指針的區別 第3張

const(*號)左邊放,我是指針變量指向常量;

const(*號)右邊放,我是指針常量指向變量;

const(*號)兩邊放,我是指針常量指向常量;

指針變量能改指向,指針常量不能轉向

要是全都變成常量,鎖死了,我不能轉向,你也甭想變樣!

*(指針)和const(常量)誰在前先讀誰;*象徵着地址,const象徵着內容;誰在前面誰就不允許改變。

標籤:指針 常量