C++学习笔记 (9):引用

0 阅读1分钟
  1. 本质

引用 = 变量的别名,不是新变量 底层就是指针常量: T* const  必须初始化,不能为空,不能改指向

  1. 语法

    cpp

    int a = 10;

    int& b = a; // b 是 a 的引用  

  2. 关键规则

引用一旦绑定,不能再绑别的变量

必须初始化,不能“先定义再绑”

不能指向 NULL

引用和原变量共用同一块内存

  1. 最常用场景:函数传参

(1)避免拷贝,效率高

cpp

void f(int& x) { ... }  

(2)修改实参

cpp

void swap(int& a, int& b);  

(3)只读 + 防拷贝

cpp

void f(const int& x);  

  1. 常引用 const T&

可以绑定临时变量

可以绑定不同类型但能隐式转换的值

函数参数首选:安全 + 高效

  1. 引用 vs 指针(极简区别)

引用:必须非空、不能重定向、语法更干净 指针:可空、可改指向、更灵活

  1. 不能玩的
  • 不能有引用的引用
  • 不能有引用数组
  • 不能返回局部变量的引用(悬空)