引用的概念

为一个变量指定一个别名

引用的规则

  1. 用之前要初始化
  2. 使用了之后就不能修改指向了(对一个引用赋值实际上是对原本被引用的那个值进行赋值,而不是改变指向)
  3. 一个对象可以同时有多个引用

问:引用可以完全代替指针吗?

答:不可以,例如链表的尾指针时刻都要变的,引用不可以修改指向(java和python的就可以)

常引用

如果引用的目标是常量的话,那自身也要是常属性的(因为引用的对象如果是常属性的,就代表不能被修改值,所以引用作为他的别名,也不能修改值)

引用的使用场景

做参数&做返回值

注意事项

  1. 返回值是引用时,引用指向的数据如果出了函数就销毁的话,会出现野引用问题(引用指向的内容已经不再安全)
  2. 返回值是引用并且还用引用来接收(如上,而且还在持续使用不安全的内容)

引用的好处

在一些使用指针时理解会比较困难的地方使用引用,可以方便理解

做返回值时:

做参数时:

引用和指针的区别

语法上和底层中:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88179.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88179.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88179.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#编程与1200PLC S7通信

读取q0.0的状态,i0.0的状态实时在窗口更新 PLC里写一个程序 用常闭按钮接i0.0信号 ,延时接通Q0.0 按按钮,上位机测试效果, 2396fcfa823aa951d 程序前提是引用了S7通信文件 using Sharp7; using System; using System.Collections.Generic; using S…

el-table复选框分页多选

场景: 你想要对el-table表格数据进行批量处理,会使用复选框,但如果表格的数据是分页请求回来的,则在切换页码的时候,之前选中的数据会被清空掉,本文就是为了解决这个问题。 解决思路: 主要分…

大IPD之——学习华为的市场队伍建设(二十)

企业要生存,就必须要拥有自己的核心竞争力。这样在行业内与其他企业竞争时,才能立于不败之地,而伴随着企业的市场化,市场机制对企业价值创造的影响力越来越大。30多年来,华为高度重视市场队伍与市场能力建设&#xff0…

Datawhlale_快乐学习大模型_task02_NLP 基础概念

书籍地址 简要总结一下个人理解 文章目录 1.1 NLP1.2 发展历程1.3 NLP任务1.3.1 中文分词1.3.2 子词切分1.3.3 词性标注1.3.4 文本分类1.3.5 实体识别1.3.6 关系抽取1.3.7 文本摘要1.3.8 机器翻译1.3.9 自动问答 1.4 文本表示的发展1.4.1 词向量1.4.2 语言模型1.4.3 Word2Vec…

AUTOSAR图解==>AUTOSAR_AP_SWS_Persistency

AUTOSAR 持久化功能集群解析 1. 引言 AUTOSAR (AUTomotive Open System ARchitecture) 适配平台中的持久化功能集群(Persistency Functional Cluster)是一个核心组件,为应用程序提供数据持久化服务。本文档详细分析了AUTOSAR持久化功能集群的架构、主要组件和工作…

Ollama常用命令详解:本地大语言模型管理指南

前言 Ollama是一个强大的本地大语言模型管理工具,让我们可以轻松地在本地部署和运行各种开源大模型。本文将详细介绍Ollama的核心命令使用方法,帮助您快速上手本地AI模型的管理和使用。 1. 查看已安装模型 - ollama list 基本用法 ollama list功能说…

[免费]SpringBoot+Vue共享单车信息系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue共享单车信息系统【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】SpringBootVue共享单车信息系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 快速发展的社会中&#xff…

内网提权-DC-3靶场实验(Ubantu16.04)

靶场地址 https://download.vulnhub.com/dc/DC-3-2.zip 打开DC-3 使用kali扫描获取靶场ip 目录扫描获取后台地址 弱口令admin/snoopy进入后台 此处可写入一句话木马 创建文件写入一句话木马 哥斯拉上线 使用lsb_release -a命令查看内核版本 方法一 使用ubuntu漏洞库发现该…

Nginx:互斥锁 accept_mutex配置

如何配置 Nginx 的互斥锁 accept_mutex 1. 理解 accept_mutex 的作用 accept_mutex 是 Nginx 用于控制多工作进程(worker processes)接收新连接时避免「惊群问题(Thundering Herd)」的机制。 启用时(accept_mutex o…

aws(学习笔记第四十六课) codepipeline-build-deploy

文章目录 aws(学习笔记第四十六课) codepipeline-build-deploy学习内容:1. 代码链接及整体架构1.1 代码链接1.2 整体架构1.2.1 初始化阶段的`codecommit repo`以及`codebuild project`设定1.2.2 创建`vpc`,`public alb`,`alb listener`以及`fargate service`等1.2.3 创建`so…

Vue 项目中的组件职责划分评审与组件设计规范制定

在现代前端系统中,Vue(无论是 2.x 还是 3.x)提供了良好的组件化机制,为构建复杂交互系统打下了基础。然而,随着项目规模增长,组件职责不清、代码重叠、维护困难等问题频发,严重影响开发效率与可…

react 的过渡动画

一、React的过渡动画 1、react-transition-group 在开发中,我们想要给一个组件的显示和消失,添加某种过渡动画,可以很好的增加用户体验, React社区为我们提供了react-transition-group用来完成过渡动画, React曾为…

深度学习:PyTorch人工神经网络优化方法分享(1)

本文目录: 一、从梯度角度入手(一)梯度下降算法回顾(二)常用优化算法1.SGD(Stochastic Gradient Descent)- 随机梯度下降2.BGD (Batch Gradient Descent) - 批量梯度下降3.MBGD (Mini-Batch Gra…

(三)yolov5——模型训练

一、准备数据 先准备一个MP4的视频 1.测试一帧 使用opencv来提取每一个视频的帧 先使用以下代码查看一帧的内容,是否符合预期 import cv2 import matplotlib.pyplot as plt# 打开视频文件 video cv2.VideoCapture("111.mp4") # 读取一帧 ret, frame…

008 Linux 开发工具(下) —— make、Makefile、git和gdb

🦄 个人主页: 小米里的大麦-CSDN博客 🎏 所属专栏: Linux_小米里的大麦的博客-CSDN博客 🎁 GitHub主页: 小米里的大麦的 GitHub ⚙️ 操作环境: Visual Studio 2022 文章目录 Linux 开发工具(下)Linux 项目自动化构建工…

前缀和题目:连续的子数组和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:连续的子数组和 出处:523. 连续的子数组和 难度 5 级 题目描述 要求 给定一个整数数组 nums \texttt{nums} nums 和一个整数 k \tex…

队的简单介绍

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)的特点。 入队列:进行插入操作的一端称为队尾。 出队列:进行删除操作的一端称为队头。 入队列…

AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)

环境: AI-Sphere-Butler VBCABLE2.1.58 Win10专业版 豆包桌面版1.47.4 ubuntu22.04 英伟达4070ti 12G python3.10 问题描述: AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一) 聊天视频: AI真…

【STM32】启动流程

1、.s启动文件解析 STM32的启动文件(一般是.s汇编文件,如startup_stm32f407xx.s)是STM32上电后执行的第一段代码,承担着“系统初始化化引导员”的角色。 它的主要作用是设置初始化栈指针(SP)、程序计数器&…

【vim】通过vim编辑器打开、修改、退出配置文件

通过vim编辑器打开任一配置文件 vim /etc/profile 英文输入下,按i键进入INSERT模式,修改配置文件 完成修改后,按esc键退出INSERT模式 英文输入下,输入":wq!",即可保存并退出 :q #不保存并退出 :q! …