在编程的时候,我们有时候希望定义这么一个对象:其内容在初始化后不能再修改。这个时候const关键字就排上用场了。
当一个对象被const修饰后,这个对象的内容在初始化后,再也无法被修改。值得注意的是,const修饰的对象必须要初始化。
可以看看以下面的例子:
int a = 10; //a是常量
//const int i; //编译器报错,因为const修饰的对象必须进行初始化(赋值)
const int j = 2; //正确
const int k = a; //正确
a = j; //正确
//j = 3; //编译器报错,const修饰的对象内容无法被修改
const和引用
我们看这个例子:
double a = 1.0;
//int &b = a; //报错,编译器不允许用const修饰的int引用double类型
const int &c = a; //正确
a = 10.0;
cout << c << endl; //输出:1
const int d = 100;
int e = &d; //报错,编译器不允许引用const常量
这里定义的对象c之所以能够通过编译,是因为编译器让c引用了一个临时的变量,形式如下面的代码: