1. 对常量的引用
const int ci = 1024;
const int &r = ci;
r = 42; // 错误,r 是对常量的引用
int &r = ci; // 错误,试图让一个非常量引用指向一个常量对象
注:1). 引用并非对象,它只是为一个已经存在的对象所起的另一个名字。
2). 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。
2. 指向常量的指针
const double pi = 3.14 // pi是一个常量,它的值不能改变
double *ptr = π // 错误,ptr是一个普通指针
const double *cptr = π // 正确
*cptr = 11; // 错误,不能给cptr赋值
const double cd = 10.00;
ptr = &cd; // 正确
3. 常量指针
int num = 0;
int *const nptr = # // nptr将一直指向num
const double pi = 3.14;
const double *const cptr = π // cptr是一个指向常量的常量指针