gpt4 book ai didi

C++ 通过 Const 引用传递并通过 Const 引用返回

转载 作者:可可西里 更新时间:2023-11-01 14:55:22 25 4
gpt4 key购买 nike

我正在尝试了解返回 const 引用是否有任何好处。我有一个通常看起来像这样的阶乘函数:

unsigned long factorial(unsigned long n)
{
return (n == 0) ? 1 : n * factorial(n - 1);
}

我假设当我们通过 const 引用并返回一个 const 引用时会有性能提升......但是 const-正确性总是让我感到困惑。

const unsigned long & factorial(const unsigned long& n)
{
return (n == 0) ? 1 : n * factorial(n - 1);
}

返回const 引用是否有效?此外,有人可以告诉我:它有益吗?

最佳答案

这是无效的。您不能返回对局部变量的引用。

MSVS C++ 编译器甚至给出以下警告:

main.cc : warning C4172: returning address of local variable or temporary

不太确定 GCC,但结果可能是一样的。

关于C++ 通过 Const 引用传递并通过 Const 引用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216948/

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