常量指針與指針常量
一、常量指針是指針指向的對象是常量, 即指針變量可以修改, 但是不能通過指針來修改其指向的對象. 例如
int d=1;
const int *p=&d; //const修飾的是int對象, 等效為 int const *p=&d;
*p=2; //編譯時報錯
二、指針常量是指針本身是個常量, 不能再指向其他對象.
在定義指針時, 如果在指針變量前加一個const修飾符, 就定義了一個指針常量, 即指針值是不能修改的. 例如
int d=1;
int* const p=&d; //const修飾的是指針p, p不能再修改, 但是它指向的內容可以修改, 如*p=2(實際上是將d的值改為2).
三、區分常量指針和指針常量的關鍵是*的位置, 如果const在*的左邊則為常量指針, 如果const在*的右邊則為指針常量.
記憶方法: 將*讀作指針, 將const讀作常量, 例如
定義 int const *p, p是常量指針
定義 int * const p, p是指針常量
參考資料:
《程序員教程》---張淑平

浙公網安備 33010602011771號