4.指针和引用的区别-灵析社区

菜鸟码转

  • 指针:指针是一个变量,它保存另一个变量的内存地址。需要使用 * 运算符指针才能访问它指向的内存位置。
  • 引用:引用变量是别名,即已存在变量的另一个名称。对于编译器来说,引用和指针一样,也是通过存储对象的地址来实现的。实际可以将引用视为具有自动间接寻址的常量指针,编译器自动为引用使用 * 运算符。

1.二者的区别

  • 是否可变:

针所指向的内存空间在程序运行过程中可以改变,而引用所绑定的对象一旦初始化绑定就不能改变。

  • 是否占内存:

指针本身在内存中占有内存空间,引用相当于变量的别名,在内存中不占内存空间(实际底层编译器可能用指针实现的引用),当我们使用 & 对引用取地址时,将会得到绑定对象的地址。

C++

#include <iostream>
using namespace std;

int main() 
{ 
    int a = 10;
    int &b = a;
    cout<<&a<<endl;
    cout<<&b<<endl;
    return 0;
}
  • 是否可为空:

指针可以定义时不用初始化直接悬空,但是引用初始化时必须绑定对象。

  • 是否能为多级

指针可以有多级,但是引用只能一级。我们可以定义指针的指针,但不能定义引用的引用。

阅读量:474

点赞量:0

收藏量:0