C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。
const int a = 10;
a = 20; //错误 a为不可修改的左值
int a = 10;
const int &r = a;
a = 20;
r = r + 1; //错误 ,r为常量引用不可修改
当const 修饰指针变量时,const出现在变量类型的前面为顶层const,表示指针所指的变量是常量,const出现在变量类型的后面时,表示该指针为常量指针
int a = 10;
const int *p = &a;
*p = 100; //错误,p指针指向的
int *const q = &a;
q = p; //错误,q指针为常量指针不可以指向其他对象