请问地址传递和值传递有啥区别

地址传递和值传递的区别是:地址传递由于形参和原参表示同一个内容,在子函数中修改形参,也会改变主函数中的原参。值传递只是把原参的复制品传给形参,在子函数中修改这个形参,不会改变主函数中的原参。

请问地址传递和值传递有啥区别-Worktile社区

地址传递

地址传递由于形参和原参表示同一个内容,在子函数中修改形参,也会改变主函数中的原参。

地址传递的实质:谓的地址传递,指的就是函数的参数是数组名或者指针。传递的是数组的首地址或指针的值,而形参接收到的是实参的地址,即指向实参的存储单元,形参和实参占用相同的存储单元,所以形参和实参是相同的。

地址传递的特点:形参并不存在存储空间,编译系统不为形参数组分配内存。因此在数组名或指针作函数参数时所进行的传送只是地址传送,形参在取得该地址之后,与实参共同拥有一段内存空间,形参的变化也就是实参的变化。

值传递

值传递只是把原参的复制品传给形参,在子函数中修改这个形参,不会改变主函数中的原参。

值传递的实质:将实参的值(a、b)复制到形参(m、n)相应的存储单元中,即形参和实参分别占用不同的存储单元。

值传递的特点:值传递的特点是单向传递,即主调函数被调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。

延伸阅读:

什么是C语言?

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。 [2]

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

文章标题:请问地址传递和值传递有啥区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37813

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:27
下一篇 2023年2月12日 下午4:30

相关推荐

  • 测试流程怎么写

    测试流程:1、评估开发计划和状态;2、制定测试计划;3、测试软件要求;4、测试软件设计;5、构建阶段测试;6、执行并记录结果 ;7、验收测试;8、报告测试结果等。评估开发计划和状态是将验证、确认和测试计划放在一起以评估已实施的软件解决方案的先决条件。 一、测试流程 1、评估开发计划和状态 此计划可能…

    2023年3月31日
    37000
  • 项目计划怎么做

    项目计划的做法:1、研究和预先规划;2、起草项目计划的粗略大纲;3、制定详细的项目时间表;4、展示并确认您的计划;5、执行计划并根据需要进行调整。研究和预先规划是指,了解项目范围和价值、采访主要利益相关者、了解您的团队。 1、研究和预先规划 项目计划不仅仅是一份带有日期的枯燥文件。因此,在开始创建项…

    2023年2月23日
    28600
  • 项目管理的伦理和责任

    项目管理的伦理和责任在提升项目成功率、构建正直的工作环境及塑造企业声誉中发挥着至关重要的作用。它包含了遵守法律法规、尊重团队成员、客户和利益相关者的权利和利益、维持公平竞争等几个核心观点。1、透明度与诚实是优质的项目管理不可或缺的品质,保证了信息的准确和公开。2、公正性要求项目经理必须保持中立,不偏…

    2023年11月30日
    40300
  • oa系统厂家

    OA系统,即办公自动化系统,旨在提升机构工作效率,实现信息化管理。选择优秀的OA系统厂家需要考虑八个方面:1、系统功能的全面性;2、用户体验和界面设计的友好性;3、系统安全性的可靠性;4、定制化和灵活性的强度;5、技术支持和售后服务的有效性;6、系统的兼容性和扩展性;7、供应商的市场地位和口碑;8、…

    2024年1月16日
    33900
  • 函数传递引用 与 直接操纵全局变量 消耗资源的区别

    区别:函引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。 传递引用 在C++中,函数参数的传递方式有引用传递。所谓引用传递是指在调用函数时将…

    2023年2月20日
    37400
  • devops系统是什么

    DEVOPS系统简述 开展对DevOps系统的探讨,该概念首要关注于软件开发(Development)及信息技术运维(Operations)的合作与融合,旨在缩短系统开发生命周期,确保交付高质量及高效率的软件产品。1、加速自动化流程部署;2、促进开发与运维团队间的紧密合作;3、持续整合与持续交付(C…

    2024年3月26日
    5800
  • 如何做好项目质量保障管理

    如何做好项目质量保障管理?项目质量保障管理要求项目团队通过实施一套系统的过程和活动来确保项目满足既定的质量标准和要求。关键策略包括:制定明确的质量目标、建立全面的质量管理计划、执行严格的质量控制措施、进行周期性的质量审查、培训员工并提升他们的质量意识、持续改进质量管理过程。为了深入了解,我们将展开详…

    2024年4月10日
    3700
  • 如何在Scrum团队中培养领导力

    在Scrum团队中培养领导力关键在于1、提供持续的培训和学习机会、2、营造支持和信任的团队文化、3、鼓励自我组织和团队协作、4、实践透明沟通、5、定期进行反思和持续改进。通过提供专业的Scrum和领导力培训,支持团队成员积极参与决策,促进团队间的透明度和开放沟通,以及鼓励团队定期回顾工作流程和个人行…

    2023年12月11日
    31400
  • 什么是非关系型数据库

    非关系型数据库也称为 NoSQL 数据库,请注意,NoSQL 的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”(没有SQL)的意思。NoSQL 数据库的产生之初并不是要彻底地否定和终结关系型数据库,而是作为传统关系型数据库的一个有效补充。 一、什么是非关系型数据库 …

    2023年6月4日
    42700
  • 网络oa系统

    网络OA系统是企业内部使用的一种在线办公自动化平台,它运用了信息技术来增强日常工作流程的效率与协同。具体而言,1)实现文档管理与共享,2)简化行政流程,3)支持远程工作,以及4)加强项目协作等核心功能。详细阐述实现文档管理与共享,该系统提供了一个中心化的仓库来存储、索引和检索企业的重要文件和资料;通…

    2024年1月16日
    18200

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部