引用的行为类似,但不完全像const指针。通过&在类型名称后加上“&”号来定义引用。
int i = 10; int &refi = i;
此处refi是的参考i。
引用抽象了指针的语义,就像对基础对象的别名一样:
refi = 20; // 我= 20;
您还可以在一个定义中定义多个引用:
int i = 10, j = 20; int &refi = i, &refj = j; // 常见陷阱: // int& refi = i, k = j; // refi will be of type int&. // though, k will be of type int, not int&!
引用必须在定义时正确初始化,此后不能修改。以下代码段导致编译错误:
int &i; // 错误:引用变量'i'的声明需要初始化
您也不能直接将引用绑定到nullptr,而不像指针:
int *const ptri = nullptr; int &refi = nullptr; // 错误:对“ int”类型的非常量左值引用无法绑定到“ nullptr_t”类型的临时对象