參考博客:
https://blog.csdn.net/xingjiarong/article/details/47282255
常量指針是指針指向的內(nèi)容是常量:
int a =5;
const int*n = &a;
*n=6;
上邊這段代碼會報錯,因為n是一個常量指針,不能通過指針來改變指針?biāo)赶虻淖兞康闹担?/p>
但是下邊這段代碼是允許的,即可以通過其他引用變量來改變變量的值
n = &b;
指針常量是指指針本身是個常量,不能再指向其他的地址;
int a =5;
int a =500;
int *const n = &a;
n = &b;
上邊這段代碼會報錯,因為指針常量不允許指向其他的地址;但是地址中保存的數(shù)值是可以改變的。
我們常用的是指針常量,確保指針變量不能被修改,而不是地址中保存的值。
記憶小技巧
區(qū)分常量指針和指針常量的關(guān)鍵就在于星號的位置,我們以星號為分界線,如果const在星號的左邊,則為常量指針,如果const在星號的右邊則為指針常量。如果我們將星號讀作"指針",將const讀作"常量"的話。美容正好符合。int *const n是指針常量,int const *n是常量指針;