侧边栏壁纸
博主头像
LittleAO的学习小站 博主等级

在知识的沙漠寻找绿洲

  • 累计撰写 125 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

C++知识点之 指针和引用的区别

LittleAO
2024-07-27 / 0 评论 / 0 点赞 / 9 阅读 / 0 字
温馨提示:
本文最后更新于2024-07-30,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

参考学习资料:https://www.bilibili.com/video/BV1xP411e75w

指针和引用是 C++ 中两种重要的变量类型,以下是它们的区别:

定义

  • 指针是一个变量,存储另一个变量的地址。

  • 引用是一个别名。

语法

  • 指针用法:int* ptr; 可以为空,也可以再之后改变。

  • 引用用法:int& ref = variable;必须在声明时初始化,之后不能改变。

初始化

  • 指针可以在声明时不初始化,之后可以随时指向不同的地址。

  • 引用必须在声明时初始化,且不能再指向其他变量。

空值

  • 指针可以指向 nullptr,表示不指向任何对象。

  • 引用不能为空,必须始终引用一个有效的对象。

使用

  • 指针使用时需要解引用操作符(*)来访问指针指向的内容。

  • 使用时不需要解引用操作符,直接使用引用名即可。

运算符重载

  • 指针支持指针算术运算(如加减),可以进行数组操作。

  • 引用不支持算术运算,引用仅作为别名存在。

内存管理

  • 指针需要手动管理内存(如使用 newdelete),可能导致内存泄漏。

  • 引用不涉及内存管理,引用的生命周期与所引用的对象相同。

使用场景

  • 指针适用于需要动态内存分配、数组操作或需要指向不同对象的场景。

  • 引用适用于需要简化语法的场景,尤其是在函数参数传递时。

常量指针与常量引用

  • 指针可以定义常量指针(const int* ptr)或指向常量的指针(int* const ptr)。

  • 引用可以定义常量引用(const int& ref),但引用本身不能是常量。

语义差异

  • 指针表示“可能没有对象”的状态,适合表示可选的对象。

  • 引用表示“必须有对象”的状态,适合表示必需的对象。

0

评论区