gpt4 book ai didi

c - 什么时候传值?

转载 作者:行者123 更新时间:2023-12-03 21:28:34 24 4
gpt4 key购买 nike

亲爱的大家。我想知道在 C 语言中是否有意按值传递参数的情况示例。让我重新表述一下。你什么时候有目的地对大对象使用 C 的按值传递?或者,您什么时候关心对象参数是否已完全复制到局部变量中?

编辑:现在我想起来了,如果你能避免指针,那就去做吧。如今,小型应用程序中的大部分内容都可以进行“深”复制,而浅复制更容易出现指针错误。也许吧。

最佳答案

在 C 中(无 const 引用),您按值传递有 3 个原因。

  • 您不希望接收函数在其上下文之外修改源。这是(曾经)在学校教授的标准原因,因为它是按值(value)传递的原因。

  • 如果值适合体系结构的寄存器(或者如果编译器非常智能,则可能是寄存器),按值传递的成本更低。按值传递意味着不创建指针,也不取消引用以获取传入的值。 yield 很小,但在某些情况下确实会增加。

  • 按值传递需要更少的输入。可以肯定的是,这是一个微不足道的理由,但确实如此。

const 关键字否定了原因 1 的大部分,但原因 2 仍然有其优点,并且是我按值传递的主要原因。

关于c - 什么时候传值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com