1.const在指针名之前
结论:const在指针名之前,指针所指的地址不能改变
改变指针指向对象的值:
int i = 90;
int* const p1 = &i;//p1 is a const object
*p1 = 60;
此时输出结果为:
i=60
*p1=60
另一种情况,改变指针所指的地址:
int i = 90;
int y = 10;
int* const p2 = &i;//p2 is a const object
p2 = &y;
编译错误
2.指针在类型名之前
结论:使用指针指向的对象的内容不能改变
改变指针所指的地址:
int i = 90;
int y = 10;
const int* p1 = &i;
p1 = &y;
输出结果:
*p1=y=10
i=90
改变指针指向的对象的内容:
int i = 90;
int y = 10;
const int* p1 = &i;
*p1 = 20;
编译错误
3.const在类型名和指针名称之前
如:const int* const ptr = &i;
既不可以改变储存的地址,也不可以改变指向的内容