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

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

3天内不再提示

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

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

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

1.传值

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

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

2.传址

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

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

3.传引用

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

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

4.哪一种更高效?

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

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

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

    关注

    11

    文章

    1833

    浏览量

    32209
  • 函数
    +关注

    关注

    3

    文章

    4331

    浏览量

    62591
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73639
收藏 人收藏

    评论

    相关推荐

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

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

    SIM800C的透模式的问题

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

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

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

    什么是透

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

    uboot是怎么参给内核的?

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

    什么是蓝牙透

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

    JavaScript让HTML静态页面的方法

    JavaScript让HTML静态页面的方法有四种:1、JavaScript通过URL。2、JavaScript通过Cookie
    发表于 01-09 15:24 5915次阅读
    JavaScript让HTML静态页面<b class='flag-5'>传</b><b class='flag-5'>值</b>的方法

    PHP中赋值和引用赋值的详细资料详解

    本文档的主要内容详细介绍的是PHP中赋值和引用赋值的详细资料详解。
    发表于 03-06 17:04 5次下载
    PHP中<b class='flag-5'>传</b><b class='flag-5'>值</b>赋值和<b class='flag-5'>引用</b>赋值的详细资料详解

    C语言函数中的指针到底有什么区别

    我们可能听过C语言中的指针,在其他语言中,也有引用一说,那么他们到底有什么区别呢?如果
    的头像 发表于 09-08 10:14 5072次阅读

    页面之间如何进行详细方法

    本文档的主要内容详细介绍的是页面之间如何进行详细方法。
    发表于 10-23 17:20 5次下载
    页面之间如何进行<b class='flag-5'>传</b><b class='flag-5'>值</b>详细方法

    C语言函数参数关于指针有什么区别

    C语言函数参数的指针有什么区别
    的头像 发表于 02-26 16:35 2228次阅读

    变送器的原理及特点

    变送器是干簧管远变送器的简称。远变送器,一般是作为磁翻板液位计的配件使用的,二者配套使用的磁翻板液位计,也称远磁翻板液位计。为使仪表用户对远
    的头像 发表于 06-29 15:19 6838次阅读
    远<b class='flag-5'>传</b>变送器的原理及特点

    为什么需要无线回 Wi-Fi回有哪些应用

    你听过回么? 回是指网络中的一段传输路径,用于将两个网络连接起来,数据可以通过回网络,在不同的网络间往返传输。根据网络介质的不同,可以分为有线回(光纤)和无线回
    的头像 发表于 08-12 15:16 1.3w次阅读

    轻松搞懂透和非透区别

    和非透是数据通信中的两种不同模式,各自有其适用场景和优势。透模式简单、高效,适用于数据完整性要求高的场景;非透模式则通过数据处理提
    的头像 发表于 06-05 12:03 9690次阅读
    轻松搞懂透<b class='flag-5'>传</b>和非透<b class='flag-5'>传</b>的<b class='flag-5'>区别</b>

    网络透和非透是什么区别是什么

    :适用简易、立即的数据传输,留意数据的完整性和低延迟。非透:适用必须进行数据解决优化的状况,提供良好的可靠性和效果。 在挑选传输技术时,务必根据实际的业务需求、数据种类、安全规定和传输效率等要素开展考量。
    的头像 发表于 08-07 16:19 769次阅读