定义参考

引用的行为类似,但不完全像 const 指针。通过将&符号 & 后缀为类型名称来定义引用。

int i = 10;
int &refi = i;

这里,refi 是与 i 绑定的参考。
引用抽象了指针的语义,就像底层对象的别名一样:

refi = 20; // i = 20;

你还可以在单​​个定义中定义多个引用:

int i = 10, j = 20;
int &refi = i, &refj = j;

// Common pitfall :
// int& refi = i, k = j;
// refi will be of type int&.
// though, k will be of type int, not int&!

必须在定义时正确初始化引用,之后不能修改引用。以下代码导致编译错误:

int &i; // error: declaration of reference variable 'i' requires an initializer

与指针不同,你也无法直接绑定对 nullptr 的引用:

int *const ptri = nullptr;
int &refi = nullptr; // error: non-const lvalue reference to type 'int' cannot bind to a temporary of type 'nullptr_t'