- int ival = 1024;
- int &refVal = ival; // ok: refval refers to ival
- int &refVal2; // error: 引用必须初始化
- int &refVal3 = 10; // error: 必须用对象进行初始化,而不能是字面值常量(literal constant)
- const int ival2 = 256;
- int &refVal4 = ival2; // error: 注意const int和int是不同类型
- register int ival3(512);
- int &refVal5 = ival3; // ok: 不管是寄存器变量还是自动变量
- const int ival = 1024;
- const int &refVal1 = ival; // ok: 类型匹配
- const int &refVal2 = 1024; // ok: 1024称为字面值常量(literal constant),也是const int类型,匹配
- const int &refVal3 = ival + 256; // ok: 可以用表达式
- const int &refVal4 = fnc(); // ok: 可以是函数返回值
- double dval = 3.14;
- const int &ri = dval; // ok: 可以是不同类型
- const int temp = dval;
- const int &ri = temp;
参考:
C++ Primer中文版(第4版)