引用
引用不是对象 无法被赋值和拷贝,不能有指针指向引用,声明引用的时候必须进行绑定一个对象,
常量引用可以绑定一个字面常量,非常量引用不可以绑定非常量的字面值,对象。
指针
(指针常量)指向常量的指针意思不能用过这个指针来修改对象,但是可以通过其他的方式来修改
const int *p;
(常量指针 ) 指针本身是常量,无法指向其他地方,
int *const p;
指向常量的常量指针
const int *const p;
1不能通过这个指针来修改这个对象2不能修改这个指针指向其他地方(但是可以通过其他的方式来修改对象)
顶层const表示指针本身是一个常量
底层const表示指针指向的对象是一个常量
int i=0;
int *const p=& i; p1是常量指针,所以是顶层const
const in b=2; b是常量 所以也是顶层const
const int *p2=&i; p2是一个指针常量,即不能通过这个指针修改i,所以这是底层const
用于声明引用的const都是底层const
在执行拷贝的时候,非常量可以转化为常量,反之则不行,拷入的和拷出的必须有相同的底层const,