const和指针
const修饰指针有两种不同的方式。
示例如下:
一是让指针指向一个常量对象,目的是防止使用该指针来修改指向的值。
int a=10;
int b=20;
const int * p=&a;
//该声明的意思是p指向一个const int(这里为10),因此不能使用p来修改这个值,
//换句话来说,*p的值为const,不能被修改。
*p=20; //错误
p=&b; //正确,const只能防止修改p指向的值,但不能防止修改p的值,也就是说,可以将一个新地址赋给p
二是让将指针本身声明为常量,这样可以防止改变指针指向的位置。
int a=10;
int b=20;
int * const p=&a;
//意思是p只能指向a,但允许p来修改a的值。
参考《C++ primer Plus》(第六版)