在 C++ 中,指针(Pointer)和引用(Reference)都可以用来间接访问内存中的对象,但它们在语法、底层机制以及使用场景上有非常显著的区别。 为了方便记忆,你可以将核心区别总结为一句话:指针是一个实体变量,存储着内存地址;而引用只是一个已经存在的变量的“别名”。 以下是它们的详细区别: 1. 核心区别对照表 | 特性 | 指针 (Pointer) | 引用 (Reference) | | :--- | :--- | :--- | | 本质 | 存放某个对象地址的实体变量,有自己的内存空间。 | 某个已知变量的别名,不占用额外的逻辑内存空间(底层实现通常是常量指针)。 | | 初始化 | 可以在定义时不初始化(虽不推荐,但合法)。 | 必须在定义时初始化。 | | 重新赋值 (Reassignment)| 可以随时改变指向,指向不同的对象。 | 一旦绑定到一个对象,就不能再改变为其他对象的引用。 | | 空值 (Nullability) | 可以为空( 或 )。 | 不能为空。必须总是引用一个有效的对象。 | | 多级使用 | 支持多级指针(如 ,指向指针的指针)。 |...