其实很简单
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本身(指向什么)不可以改变,但是可以改变内存中的值。 |