C++引用和指针的区别还分不清楚?

不像其他语言,c++既有引用的概念、又有指针的概念。

很多人用着用着就懵了。

不用慌,给你画个表格协助判断。

总体上,我们可以总结为以下五个区别:

一、定义方式:

  • 指针通过使用 * 来定义,例如:int* ptr;
  • 引用使用 & 来定义,例如:int& ref = num; ,并且必须在定义时进行初始化。

二、内存存储

  • 指针本身有自己的内存空间,用于存储所指向对象的地址。
  • 引用不占用额外的内存空间,它只是所引用对象的一个别名。

三、可重新赋值

  • 指针可以指向不同的对象,即可以重新赋值。
  • 引用一旦初始化,就不能再引用其他对象。

四、空值

  • 指针可以为空(NULL 或 nullptr )。
  • 引用必须关联到一个有效的对象,不能为空。

五、操作方式

  • 访问指针所指向的对象需要使用解引用操作符 * 。
  • 引用可以直接像使用原始对象一样使用。
相关推荐
繁华似锦respect6 小时前
Linux-内核核心组成部分
linux·c++
F***74176 小时前
PHP操作redis
开发语言·redis·php
zore_c6 小时前
【C语言】数据在内存中的存储(超详解)
c语言·开发语言·数据结构·经验分享·笔记
程序员-周李斌6 小时前
ArrayList 源码深度分析(基于 JDK 8)
java·开发语言·数据结构·算法·list
y***03176 小时前
Go基础之环境搭建
开发语言·后端·golang
不知所云,6 小时前
2.windows c/c++ 编译器安装, mingw和clang
c语言·c++·windows·mingw·clang·c编译器
前端程序猿i6 小时前
前端判断数据类型的所有方式详解
开发语言·前端·javascript
爪哇部落算法小助手6 小时前
爪哇周赛 Round 3
数据结构·c++·算法
二川bro6 小时前
内存泄漏检测:Python内存管理深度解析
java·开发语言·python
k***81726 小时前
PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
开发语言·redis·php