參考博客:
https://blog.csdn.net/xingjiarong/article/details/47282255
常量指針是指針指向的內(nèi)容是常量:
int a =5;
const int*n = &a;
*n=6;
上邊這段代碼會(huì)報(bào)錯(cuò)航罗,因?yàn)閚是一個(gè)常量指針滑废,不能通過指針來改變指針?biāo)赶虻淖兞康闹担?/p>
但是下邊這段代碼是允許的场梆,即可以通過其他引用變量來改變變量的值
n = &b;
指針常量是指指針本身是個(gè)常量,不能再指向其他的地址金抡;
int a =5;
int a =500;
int *const n = &a;
n = &b;
上邊這段代碼會(huì)報(bào)錯(cuò),因?yàn)橹羔槼A坎辉试S指向其他的地址;但是地址中保存的數(shù)值是可以改變的犯祠。
我們常用的是指針常量紊浩,確保指針變量不能被修改窖铡,而不是地址中保存的值。
記憶小技巧
區(qū)分常量指針和指針常量的關(guān)鍵就在于星號(hào)的位置坊谁,我們以星號(hào)為分界線费彼,如果const在星號(hào)的左邊,則為常量指針口芍,如果const在星號(hào)的右邊則為指針常量箍铲。如果我們將星號(hào)讀作"指針",將const讀作"常量"的話鬓椭。美容正好符合颠猴。int *const n是指針常量,int const *n是常量指針小染;