C++ 指针与引用

1 指针

1
2
3
int x;
int &a = x;
int *const b = &x;

2 引用

引用更接近 const 指针。

2.1 左值引用

左值引用要求右边的值必须能够取地址,如果无法取地址,可以用常引用;
使用常引用后,我们只能通过引用来读取数据,无法去修改数据,因为其被const修饰成常量引用了。

1
2
3
int a = 0;
int &b = a; // 左值引用
const int &c = 0; // 常引用,无法被修改

2.2 右值引用

立即数,函数返回的值等都是右值

1
int &&a = 0; // 右值引用,可以被修改

2.3 左值引用与右值引用的区别

  • 可以取地址的,有名字的,非临时的就是左值;
  • 不能取地址的,没有名字的,临时的就是右值;

2.4 万能引用

1
2
template<typename T>
void f(T &&arg);

3 指针与引用的区别

4 参考文献


C++ 指针与引用
https://laplac2.github.io/cpp/pointer/
作者
Laplace
发布于
2022年3月18日
许可协议