引用

【关键点】

  • 引用不是对象,而是绑定对象(即引用只是对象的别名),它没有被分配内存空间,对它的任何操作都是对它所绑定的对象执行的
  • 引用必须初始化,并且一直和它的初始值对象绑定在一起(即无法令引用重新绑定到另外一个对象)
  • 引用的类型要和与之绑定的对象严格匹配(除了对 const 的引用动态类型这两种情况)
  • 不能定义引用的引用,因为引用本身不是一个对象
  • 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。(常量引用是个特例)

2017-11-9补充

    int i = 2;
    int &r = i;

r 就是引用,我们可以称r为引用,也可以称为引用类型

2018-3-22补充

【指向指针的引用】

    int i = 42;
    int *p;
    int *&r = p;    // r是一个对指针p的引用
    r = &i;            // 等价于p = &i

理解 r 的类型:从右向左阅读 r 的定义,离变量名最近的符号对变量的类型有最直接的影响,故 r 是一个引用。(声明符的其余部分用以确定 r 引用的类型是什么,此例中的符号 * 说明 r 引用的是一个指针)

原文地址:https://www.cnblogs.com/xzxl/p/7647156.html