0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你们知道指针和引用正确的使用场景吗

STM32嵌入式开发 来源:CSDN技术社区 作者:weixin_39862899 2021-09-02 14:37 次阅读

先解决两个疑问

◆ 指针和引用的不同之处是什么?

◆ 何时用用指针?何时用引用?

指针和引用的不同之处

看如下代码:

766e5490-0b3d-11ec-8fb8-12bb97331649.png

指针是用来表示内存地址的,而指针这个整数正是被指向的变量地址。

而引用就是给变量重新起了一个名字,引用也就是“别名”。

不同之处

◆ 指针在声明时可以暂时不初始化,当然每次使用指针时都要做检查,以防出现空指针异常的问题0。而引用永远都不会为空,它一定得代表某个对象。

7678a346-0b3d-11ec-8fb8-12bb97331649.png

◆ 指针存放的是地址,可以被重新赋值。而引用总是指向它最初代表的那个对象。

指针和引用使用场合

引用主要是作为函数的参数和返回值来使用的,看如下代码:

76a6dc34-0b3d-11ec-8fb8-12bb97331649.png

通过vec[3] =3可改变vector容器的值,这是因为[]操作符返回的就是引用。也就是为内部的变量取了一个别名,还能让[]操作符返回一个指针,即*vec[3]=3。实际上引用可以做的事情指针都可以做,那为什么还要使用引用?

总结

用恰当的工具做恰如其分的工作。

指针可以毫无约束的操作内存中的任何东西,功能十分强大,但也很危险,所以可以在恰当的时机使用引用。当你需要指向某个东西,绝不会让其指向其它东西,例如有些函数参数为了避免拷贝可以使用引用,或者实现一个操作符而其语法需求无法由指针达成,例如vec[3]=3,可以使用引用,而其它任何时候,都要使用指针。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72772
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66784
  • Vector
    +关注

    关注

    3

    文章

    45

    浏览量

    8412

原文标题:C语言面试-指针和引用的使用场景?

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言函数指针六大应用场景详解

    函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。在本文中,我们将介绍 6 个函数指针的高级应用场景,并贴出相应的代码案例和解释。
    的头像 发表于 04-23 18:19 421次阅读

    NanoEdge AI的技术原理、应用场景及优势

    能耗并提高数据安全性。本文将对 NanoEdge AI 的技术原理、应用场景以及优势进行综述。 1、技术原理 NanoEdge AI 的核心技术包括边缘计算、神经网络压缩和低功耗硬件设计。边缘计算
    发表于 03-12 08:09

    洛杉矶云服务器适合哪些应用场景?

     洛杉矶云服务器怎么样 ?适合哪些应用场景,RAKsmart小编为您整理发布洛杉矶云服务器适合哪些应用场景
    的头像 发表于 03-08 09:51 88次阅读

    AG32VF-MIPI应用场景

    MIPI接口技术在图像和视频传输中的应用越来越广泛,应用场景也在不断拓展,而不仅限于移动设备。MIPI接口在物联网、智能家居、智能监控、智能电视、智能汽车等领域也得到广泛应用。 MIPI还可
    发表于 01-22 08:56

    函数指针的基本概念和语法

    函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。在本文中,我们将介绍 8 个函数指针的高级应用场景,并贴出相应的代码案例和解释。
    的头像 发表于 12-12 09:33 259次阅读

    无功补偿装置应用场景

    在现代社会中,电力已经成为人们生产、生活的重要基础设施。而无功补偿装置作为电力系统的重要组成部分,具有广泛的应用场景和重要的作用。那么,无功补偿装置的应用场景有哪些呢?
    的头像 发表于 11-13 14:43 314次阅读

    labview 和 wincc 的区别 使用场景

    labview 和 wincc 的区别 使用场景 都是上位机软件,都可以做监控软件 wincc的名气也比较大 对比的资料较少 写这些文章的人,从自己的从事的行业出发,带有自己的思维 使用的场景 肯定
    发表于 10-27 18:01

    【华秋干货铺】SMT组装工艺流程的应用场景

    工艺流程的应用场景。 01单面纯贴片工艺 应用场景: 仅在一面有需要焊接的贴片器件。 02双面纯贴片工艺 应用场景: A/B面均为贴片元件。 03单面混装工艺 应用场景: A面有贴
    发表于 10-20 10:33

    SMT组装工艺流程的应用场景

    工艺流程的应用场景。 01单面纯贴片工艺 应用场景: 仅在一面有需要焊接的贴片器件。 02双面纯贴片工艺 应用场景: A/B面均为贴片元件。 03单面混装工艺 应用场景: A面有贴
    发表于 10-20 10:31

    SMT组装工艺流程的应用场景(多图)

    工艺流程的应用场景。 一、单面纯贴片工艺 应用场景: 仅在一面有需要焊接的贴片器件。 二、双面纯贴片工艺 应用场景: A/B面均为贴片元件。 三、单面混装工艺 应用场景: A面有
    发表于 10-17 18:10

    直线模组的应用场景

    直线模组的应用场景
    的头像 发表于 10-09 17:36 594次阅读
    直线模组的应<b class='flag-5'>用场景</b>

    jlink的主要使用场景有没有可以替代的非硬件方案?

    jlink的主要使用场景,有没有可以替代的非硬件方案?
    发表于 10-07 09:00

    机器视觉应用场景

    机器视觉应用场景 随着时代的发展,新的技术,机器视觉的应用越来越广泛。以下是机器视觉的典型应用场景: 1.生产车间组装 机器人在机器视觉技术的作用下,可以精确地按照视觉技术使机械手臂拥有3D视觉能力
    发表于 06-29 11:35 785次阅读

    C语言指针引用的不同之处及使用场

    指针引用的不同之处是什么?
    发表于 06-14 09:14 180次阅读
    C语言<b class='flag-5'>指针</b>和<b class='flag-5'>引用</b>的不同之处及使<b class='flag-5'>用场</b>合

    蓝牙多连接应用场景举例

    蓝牙多连接应用场景举例 一、蓝牙多连接的通信方式: 1-1、蓝牙MESH组网图: 1-2、蓝牙星型组网图; 二、两种方案的优劣势: 2-1、 MESH方式网络中的节点数量多,能够实现单播、组播
    发表于 05-09 09:09