引用是已存在变量的别名.这句话包含了两层意思,
第一个是已经存在的变量,引用在声明时必须对其初始化,
第二个是别名,编译器不会给引用分配内存空间,引用只是作为一个符号,和他初始化的变量标示同一个地址
因为上面的原因,我们可以看出,我们只能对引用在初始化时进行赋值,我们不能让引用在初始化之后指向其他地方(这一点和指针不同),同时引用不能为空(和指针不同)
因此像int &r;这样的语句是错误的
此外,int p =1; int i =2; int &r = p; r = i;
最后一句指的是赋值,将i的值赋给r,而不是让引用r指向和i一样的内存.
引用的作用
1.作为参数传入函数
void swap(int &refx,int &refy)
函数体内可以直接对refx 和refy操作.引用实现了实参和形参的结合.
此外如果参数有const修饰,表示传入的引用不能被修改.但是该值本身可以被修改,只是不能通过该引用修改.
2.作为函数的返回值
函数的返回值为引用,作为返回值的一个别名,并不会做真正的赋值操作