引用与指针有什么区别?

2023-10-31

引用与指针有什么区别?

指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
  • 程序为指针变量分配内存区域,而不为引用分配内存区域。

  • 指针使用时要在前加 * ,引用可以直接使用。

  • 引用在定义时就被初始化,之后无法改变;指针可以发生改变。 即引用的对象不能改变,指针的对象可以改变。

  • 没有空引用,但有空指针。这使得使用引用的代码效率比使用指针的更高。因为在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。

  • 对引用使用“sizeof”得到的是变量的大小,对指针使用“sizeof”得到的是变量的地址的大小。

  • 理论上指针的级数没有限制,但引用只有一级。即不存在引用的引用,但可以有指针的指针。
    int **p //合法
    int &&p //非法

  • ++引用与++指针的效果不一样。
    例如就++操作而言,对引用的操作直接反应到所指向的对象,而不是改变指向;而对指针的操作,会使指针指向下一个对象,而不是改变所指对象的内容。

参考文献:
https://www.cnblogs.com/gxcdream/p/4805612.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引用与指针有什么区别? 的相关文章

随机推荐

  • LVGL LABLE手动选择lv_label_set_text_sel_start如何取消选择

    很多都遇到了lable输入手动选择问题 上篇将lvgl有个bug 这篇讲一下如何取消选择 设置 lv label set text sel start edit lable 1 lv label set text sel end edit
  • python3读取yaml文件

    yaml文件 student name 王 age 18 subject yuwen english shuxue class 一班 二班 三班 system name dos port 8080 env dev name linux po
  • java中包的知识点、局部变量的生命周期、形参与实参

    类是以一个个文件的形式存在的 包是以文件夹的形式存在 包是用来放类的组织单位 包 文件夹 中含有很多的类 文件 命名规范大总结 类名 包名 方法名 变量名称 1 不能以数字开头 2 不能出现特殊符号 字母 数字 下划线 3 类名通常Hell
  • Linux 环境下安装 GitLab 与配置

    什么是 GitLab GitLab 是一个用于仓库管理系统的开源项目 使用 Git 作为代码管理工具 并在此基础上搭建起来的 web 服务 GitLab的功能特点 提供了管理 计划 创建 验证 打包 发布 配置 监视和保护应用程序的功能 是
  • Unity发布HTC头盔无法唤起

    1 问题描述 最近在开发一款HTC的项目时发现一个问题 我在编辑器里头盔可以被识别 但是发布后 打开程序头盔无法被唤起 版本为Unity2019 4 33 SteamVR从商店最新下载 导入SteamVR插件是选择LegacyVR模式 2
  • Duplicated 与unique

    gt DT lt data table A rep 1 3 each 4 B rep 1 4 each 3 C rep 1 2 6 key A B gt DT A B C 1 1 1 1 2 1 1 2 3 1 1 1 4 1 2 2 5
  • 【OpenCV学习笔记】【教程翻译】二(车牌识别算法框架)

    在介绍自动车牌识别的代码之前 我们需要定义自动车牌识别算法的主要步骤和任务 自动车牌识别主要分为两步 车牌检测和车牌识别 车牌检测的目的是检测出车牌在整副图像中的位置 当一副图片中的车牌被检测出来了 然后就是第二步 车牌识别 车牌识别使用O
  • 华为OD机试 - MELON的难题(Java)

    题目描述 MELON有一堆精美的雨花石 数量为n 重量各异 准备送给S和W MELON希望送给俩人的雨花石重量一致 请你设计一个程序 帮MELON确认是否能将雨花石平均分配 输入描述 第1行输入为雨花石个数 n 0 lt n lt 31 第
  • Web前端开发 移动端开发(快速入门)

    目录 一 理论知识 1 视口 2 物理像素和物理像素比 3 二倍图 4 移动端开发选择 二 移动端开发流程 1 技术选型 2 搭建文件结构 3 SEO优化3大标签 4 设置favicon ico logo图片 5 视口标签和初始化样式 6
  • 粉丝福利—这本热门机器学习书籍,你值得免费拥有

    粉丝福利 机器学习书籍免费大放送 1 粉丝福利 2 抽奖方式 各位小伙伴们 大家好 为了回馈粉丝们的支持 小编给大家送来一波福利 闲言少叙 咱们直接进入正题 1 粉丝福利 为答谢AI研习图书馆广大粉丝朋友们长久以来的支持 本号发起免费赠书活
  • vue项目怎么修改项目名称

    1 在package json文件中 修改name成你想要的新名字 2 删掉node modules文件夹 3 修改根目录下面的index html文件中的title 改完以后 vue文件中的title就改过来了 4 重新下载依赖 npm
  • 业务架构视图该怎么画?

    业务架构全景视图是快速理解业务运作形态的重要工具 该视图不应以IT视角绘制 业务元素及其结构应是绘制重点 商业模式画布中业对务元素进行了标准化 将其业务活动展开可得到一份精炼的业务全景视图 两者可互为补充 由于篇幅限制和认知曲线 应该控制全
  • 2020年 IEEE VIS 科学可视化与体渲染论文整理与分析

    因为最近工作的关系 需要研究一下IEEE VIS中2017年以后的与我之前主要方向 体渲染 医学可视化 有关的论文 我把这些年全部的论文进行了筛选和梳理 总共筛选出57篇论文 打算写一个文章来记录这些内容 这个栏目是2020年的5篇论文的介
  • 把Collection转化为XML

    IList
  • zlib库源码编译

    文章目录 zlib库源码编译 简介 源码编译 Windows vs2017 64位版本编译 zlib库源码编译 简介 该篇博客主要用于记录zlib库的源码编译方法 根据自己在源码编译过程中踩得坑进行记录 既便于后续自己学习 也希望能够帮助他
  • SDK 开发中见到的问题

    问题1 Could not build module MySDK 原因是 在pubulic的头文件中导入的头文件都需要导入到pubulic中 m文件中头文件不需要导入 问题2 Missing submodule subHeader 原因是
  • PyDev Eclipse使用技巧说明

    PyDev Package Explorer 创建项目 在开展工作之前 需要创建一个新的项目 在 Eclipse 菜单栏中 选择 File gt New gt Project gt Pydev gt Pydev Project 单击 Nex
  • 求函数【线段树】【2020牛客寒假算法基础集训营2】

    首先 这个区间很容易让人想到是区间操作 那么就是来推公式吧 我们从中不难发现 从两个值到四个值 可以是相当于 其中 两个 括号中的值是不是有点相似 我们是不是可以将它放在线段树上来进行维护了 include
  • CVPR 2022

    作者 cocoon 编辑 3D视觉开发者社区 前言 FAIR又出新作了 一篇 2020年代的卷积网络 的横空出世 让国内外CV圈的眼光都聚焦于此 不少大牛都纷纷下场参与讨论 研究团队以Transformer的一些设计原则以及训练技巧为标 尽
  • 引用与指针有什么区别?

    引用与指针有什么区别 指针和引用都是地址的概念 指针指向一块内存 它的内容是所指内存的地址 引用是某块内存的别名 程序为指针变量分配内存区域 而不为引用分配内存区域 指针使用时要在前加 引用可以直接使用 引用在定义时就被初始化 之后无法改变