【问题标题】:Pass by const reference in C在 C 中通过 const 引用传递
【发布时间】:2013-10-09 15:59:01
【问题描述】:

C 是否支持像 C++ 一样通过 const 引用传递?如果没有,是否有其他方法可以提高按值传递的效率?我认为仅将引用传递给函数是没有意义的,因为它更有效。

【问题讨论】:

  • 在 C 语言中,使用指针,您将只复制指针。 I don't think it makes sense to pass references to a function only because it's more efficient -> 这在 C++ 中非常危险。如果不传递引用,则执行隐式复制。这是非常昂贵的,这就是为什么建议使用私有复制构造函数。
  • 引用变量的好处是简单易用,可以作为指针使用!

标签: c++ c pass-by-reference pass-by-const-reference


【解决方案1】:

C 不支持引用或通过引用传递。您应该改用指针并按地址传递。值传递对原始类型很有效,但对结构进行浅拷贝。

在 C++ 中,通过引用传递对象以提高效率是很有意义的。当定义复制构造函数时,它可以节省大量的构造函数/析构函数的复制和调用。对于大型数据对象(例如std::list),按值传递是不切实际的,因为传递时会复制列表。在这里你绝对应该通过引用传递。

【讨论】:

  • 我想澄清一下;如果我想在 C 中快速传递一个结构,我应该通过指针传递,如果我不打算修改,则使用 const 关键字?
猜你喜欢
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多