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

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

    关注

    9

    文章

    3229

    浏览量

    76495
  • 函数
    +关注

    关注

    3

    文章

    4421

    浏览量

    67819
  • 代码
    +关注

    关注

    30

    文章

    4975

    浏览量

    74349
  • Vector
    +关注

    关注

    3

    文章

    101

    浏览量

    10093

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    值传递、指针传递、引用传递介绍

    中有开辟了内存空间来存放主调函数放进来实参的值,从而成为一个副本。因为指针传递的是外部参数的地址,当调用函数的形参发生改变时,自然外部实参也发生改变。   3、引用传递:被调函数的形参虽然也作为
    发表于 01-21 06:48

    C语言函数指针的六个高级的应用场景

    函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。在本文中,我们将介绍 6 个函数指针的高级应用场景,并贴出相应的代码案例和解释。 回调函数 回调函数是指在某个事件发生时被
    发表于 01-04 12:25

    Neway电机方案在电机控制的应用场景

    Neway电机方案在电机控制的应用场景Neway电机方案在电机控制领域的应用场景广泛且效果显著,其核心优势在步进电机、伺服电机控制及CNC机床主轴驱动等场景中得到了充分验证。一、步进电机与伺服电机
    发表于 01-04 10:10

    请问C语言中整形溢出对哪些应用场景影响较大?

    C语言中整形溢出对哪些应用场景影响较大
    发表于 12-24 08:24

    请问MOSFET在电源管理中有哪些应用场景

    MOSFET在电源管理中有哪些应用场景
    发表于 12-23 07:07

    CW32L083系列微控制器有哪些应用场景

    CW32L083系列微控制器有哪些应用场景
    发表于 12-16 07:52

    Switch的应用场景

    Switch的应用场景如下: 调用一到多个函数 设置变量值或者返回一个值 执行一到多个代码片段 如果case标签很多,在switch的前两个使用场景中,使用查找表可以更高效的完成。例如下面的两种
    发表于 12-12 07:28

    蓝牙网关是什么?都有哪些功能?应用场景有哪些?

    点,更构建起“设备互联-数据流转-智能管控”的完整链路,成为物联网生态中不可或缺的核心组件。本文将系统解析蓝牙网关的核心价值、技术架构、应用场景、现存挑战及未来趋势,为读者呈现这一关键技术的全貌
    发表于 12-11 15:21

    CW32 SysClk系统时钟的应用场景与切换规则

    。 主要应用场景包括: 1、时钟故障自动切换当检测到当前系统时钟源失效时,可快速安全切换到其它可用时钟源上,提高产品可靠性。 2、功耗管理在待机状态切换 SysClk 的时钟源为低速时钟降低系统功耗,在
    发表于 12-11 07:51

    智能指纹锁CW32系列有哪些应用场景

    智能指纹锁CW32系列有哪些应用场景
    发表于 12-05 06:34

    CW32L083有哪些应用场景

    CW32L083有哪些应用场景
    发表于 11-24 07:37

    请问CW32L011有哪些应用场景

    请问CW32L011有哪些应用场景
    发表于 11-17 06:25

    CW32L0系列都有哪些应用场景?有哪些优势?

    目前芯源的低功耗MCU比较火爆,就是CW32L0系列都有哪些应用场景?有哪些优势?
    发表于 11-14 06:03

    CoolSiC™ MOSFET G2如何正确选型 硬开关与软开关场景解析

    在功率电子领域,英飞凌的CoolSiCMOSFETG2以其卓越性能备受关注。本文将重点分析如何在硬开关和软开关两种应用场景下,正确选型CoolSiCMOSFETG2,以实现最佳系统性能。
    的头像 发表于 08-26 09:04 5278次阅读
    CoolSiC™ MOSFET G2如何<b class='flag-5'>正确</b>选型 硬开关与软开关<b class='flag-5'>场景</b>解析

    UWB应用场景

    鸿合智远|捷扬微-产品简介介绍:UWB应用场景
    的头像 发表于 05-12 10:05 1192次阅读
    UWB应<b class='flag-5'>用场景</b>