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

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

3天内不再提示

传值、传址、传引用的区别,哪个更高效?

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 15:05 次阅读

传值、传址、传引用的区别,哪个更高效?

1.传值

这种传递方式中,实参和形参是两个不同的地址空间,参数传递的实质是将原函数中变量的值,复制到被调用函数形参所在的存储空间中,这个形参的地址空间在函数执行完毕后,会被回收掉。整个被调用函数对形参的操作,只影响形参对应的地址空间,不影响原来函数中的变量的值,因为这两个不是同一个存储空间。

即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。

2.传址

这种参数传递方式中,实参是变量的地址,形参是指针类型的变量,在函数中对指针变量的操作,就是对实参(变量地址)所对应的变量的操作,函数调用结束后,原函数中的变量的值将会发生改变。

被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。

3.传引用

这种参数传递方式中,形参是引用类型变量,其实就是实参的一个别名,在被调用函数中,对引用变量的所有操作等价于对实参的操作,这样,整个函数执行完毕后,原先的实参的值将会发生改变。

被调函数对形参做的任何操作都影响了主调函数中的实参变量。

4.哪一种更高效?

在内置类型当中三种传递方式的效率上都差不多;

在自定义类型当中,传引用的更高效一些,因为它没有对形参进行一次拷贝

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

    关注

    11

    文章

    1396

    浏览量

    31458
  • 函数
    +关注

    关注

    3

    文章

    3865

    浏览量

    61307
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72899
收藏 人收藏

    评论

    相关推荐

    VI 间,,当生成EXE时 不行,,

    VI 间,开发环境可以*附件:VI间其中一个为EXE时.rar,当生成EXE时 不行,,
    发表于 03-22 11:52

    JS标量与引用类型的特性

    编程语言
    小凡
    发布于 :2022年09月08日 10:38:18

    这个队列的应用怎么怎么理解啊

    如图,分明是在while循环中添加的随机数元素,可为什么在while循环之前将先引用连线至后一个while中的元素出队列函数。我觉得应该是如图队列2连线方式,但运行时不正常。请教大神啊!!!
    发表于 08-23 16:25

    最新推出低功耗蓝牙透模块

    注意啦!最新推出蓝牙透模块,透模块可以省去蓝牙底层的软硬件的时间投入及成本投入,以最短的开发周期整合现有的方案基于NRF51822的透模块,ARM M0内核功能:1、使用简单,无需任何蓝牙协议
    发表于 11-05 13:47

    庆科的产品 除了3162 以外,还有哪个型号可以实现透

    如题,庆科的产品 除了3162 以外,还有哪个型号可以实现透
    发表于 11-05 16:04

    SIM800C的透模式的问题

    据,产生>。 如果发送AT+CIPSEND,发送完数据,还要发送0x1a如果发送AT+CIPSEND=10,就说可以发送10个字节的数据。 这和我理解的透区别,我理解的应该完全透,不用发
    发表于 10-24 18:14

    详解父组件向子组件与非父子组件

    父子组件,非父子组件,作用域插槽
    发表于 02-22 08:17

    请问ESP8266 wifi模块透与普通模式有什么区别

    请问这个wifi模块 透与普通模式有什么区别,什么叫透模式,谢谢!!
    发表于 06-03 23:32

    TV屏之间跳转以及回练习

    蛟龙腾飞研修日志,库存内容分享交流。TV屏之间跳转以及回练习。
    发表于 12-03 11:49

    TV屏之间跳转以及回练习

    蛟龙腾飞研修日志,库存内容分享交流。TV屏之间跳转以及回练习。
    发表于 12-08 15:24

    什么是透

    的概念透概念具体到此次实践
    发表于 12-24 07:13

    uboot是怎么参给内核的?

    uboot是怎么参给内核的?linux怎么进行内存管理?进程和线程的区别是什么
    发表于 02-24 07:56

    荣小菜补钙记第16期:内存优化之数据引用

    荣小菜补钙记第16期:内存优化之数据引用 同步更新于 WeChat:荣小菜在补钙大家好,我是荣小菜,也可以叫我Richie,今天分享一种类似控件引用
    发表于 03-05 23:45

    什么是蓝牙透

    一.什么是蓝牙透?透是最简单也是最常见的通讯方式(如下图所示),透也叫串口透,就是透明传输的意思,透是一种工作方式,不是一种功能,
    发表于 12-06 06:15

    自定义透模型回调里面的透和write数据有什么区别

    例程中透数据和write数据分别适用于什么场景?,用例程中的按键发送数据,都是直接进入透分支里面的,那么这个write数据是怎样使用的,通常用在什么用处?
    发表于 07-27 06:48