1.引用必须在声明时初始化;
2.引用永远只能绑定到初始化时的对象,不能更改;
3.不能定义引用的引用;
4.引用必须用与该引用类型相同的对象初始化(const引用除外);
5. int a=3;
const int &b=a;
const是指b是const型,不能通过改变b来改变a的值,但是可以直接改变a的值,如a=4,此时a=b=4.
6. const int a=3;
int &b=a;
不合法,因为这样的话,意味着可以通过改变b的值来改变a的值了,a是const型,而b只是个别名而已。
任何将普通引用绑定到const对象的操作都是不合法的,而可以将const引用绑定到普通对象上,比如经常用const引用作函数形参,可防止在函数中无意修改了实参的值。
const引用也可以绑定到const对象上。
7. const引用绑定的对象可以与其类型不同,只要是相关的就可以。
double a=3.14;
const int &b=a;
编译器的实际操作为:
int temp=a;
const int &b=temp;
所以类型不同时,引用必须为const,否则则意味着可以通过修改引用的值来改变对象的值,但这是不可能的,因为只会改变中间变量的值。