常量引用:
这个名字的表述并不正确,应为指向常量的引用。
例:
int p;
const int &i = p;
i = 42; // 报错,i是指向常量的引用
p = 42;//正确
指针常量:
指针所指的值是常量
int i = 4;
int q;
const int *p = &i;
*p = 6;//错误,指针所指的值无法修改。
p = q;//正确,指针本身可以修改。
常量指针:
指针本身是常量
int i = 0;
int *const p = &i;
*p = 6;//错误常量指针无法修改;
i = 6;//正确,指针所指的值可以通过其他赋值语句修改