当前位置: 首页 > news >正文

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

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

很多人用着用着就懵了。

不用慌,给你画个表格协助判断。
在这里插入图片描述
总体上,我们可以总结为以下五个区别:

一、定义方式:

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

二、内存存储

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

三、可重新赋值

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

四、空值

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

五、操作方式

  • 访问指针所指向的对象需要使用解引用操作符 * 。
  • 引用可以直接像使用原始对象一样使用。

http://www.mrgr.cn/news/1309.html

相关文章:

  • spring boot 接收第三方mq消息
  • VTK—vtkImplicitFunction 隐函数
  • uiapp+vue3具名插槽使用
  • 机器学习:knn算法实现图像识别
  • Transformer2
  • 【JavaEE】JVM 内存区域划分,以及 Java 垃圾回收机制引用计数器,可达性分析等
  • Java-分割list并执行多线程任务的工具类
  • 简洁清新个人博客网页模板演示学习
  • 解决springboot中Aspect注解不生效问题
  • 快速解析数据挖掘,最短时间明白什么是数据挖掘------下
  • 【网络】 arp 命令 得到网段内所有物理设备ip
  • 使用Docker-compose一键部署Wordpress平台
  • Springboot邮件发送:如何配置SMTP服务器?
  • ISCC-2024--WP
  • pytorch自动微分
  • RabbitMQ-消息队列-centos7
  • 【Redis】有序集合(Zset)详解及实际应用场景分析:从命令操作到内部编码
  • 封装的 JavaScript 函数,用于判断一个变量是否为空,适用于不同类型的变量:
  • 【Hot100】LeetCode—21. 合并两个有序链表
  • 这是啥设计模式-适配模式