int main()
{
int l1 = 1;
int l2 = 2;
const int *p; //p的值不能变,但p指向的地址可以改变
int * const p1 = &l1; //p指向的地址不能改变,但p的值可以改变
p = &l1;
//错误
//*p = l2;
//正确
p = &l2;
/*********/
//错误
//p1 = &l2;
//正确
*p1 = 2;
return 0;
}
const int *p
const是修饰整个*p的,所以p的值是不能修改。p并没有用const修饰,所以p的地址可以修改
int * const p1
const修饰的是p1,所以p1的地址不可以改变。*p1并没有被const修饰,所以p1的值是可以修改的