引用的特性

  1. 引用在定义时必须初始化,并且不能够改变
  2. 引用必须同类型
  3. 非常量引用的初始值必须为左值

const修饰的引用:
const int &a=0;//const引用常量

double d=0.0;
int &a = d;
在VS2013下编译这条语句会得到这样的提示:无法用“double”类型的值初始化“int &”类型的引用(非常量限定)。
但是加上const。如下:
double d = 0.0;
const int &a = d;
没有报错。通过反汇编可以看出:运行到const int &a = d;语句时,并不是简单地将a初始化为d的引用,而是产生了一个临时变量,而临时变量具有常量性,所以才可以赋值给常引用a。

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/85637317