其實很簡單
int a = 1, b = 2;
// 正確
{
int *p = &a;
p = NULL;
*p = 5;
}
{
const int *p = &a;
p = &b; //正確
//*p = 5; //錯誤
}
{
int const *p = &a;
p = &b; //正確
//*p = 5; //錯誤
}
{
int * const p = &a;
//p = &b; //錯誤
*p = 5;
}
看const的後面緊跟的是什麼就可以了,1和2都是緊跟的int* ,所以const修飾內存,不可以修改內存中的值
而第3種const後是指針p,所以指針p本身(指向什麼)不可以改變,但是可以改變內存中的值。