1、const int *p
比如:
int i = 0;
const int *p = &i;
*p = 100; //错误
cout << *p; //正确
总结:可读不可写。可以通过*p读取i的值,但是不能通过*p改变i的值。
2、int *const p
比如:
int i1 = 0;
int i2 = 0;
int *const p = &i1;
p = &i2; //错误
*p = 100; //正确
总结:指针初始化之后的指向地址不可改变。上述代码中p初始化为指向i1的地址,不能修改为指向i2的地址。可以通过*p修改i1的值。