gpt4 book ai didi

c++ - 使用引用返回静态字符数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:11 25 4
gpt4 key购买 nike

现在我想编写以下代码的新版本:

const char * f() {
return "Hello";
}
const char *pf = f();

我想知道如何使用 reference 而不是 pointer

我有一个想法,使用string

有没有更直接的方法来解决这个问题?

更新:

我仔细阅读了答案和评论。我得到另一个想法 是将返回值视为const char 数组。但是这个解决方案似乎太复杂了,没有指针那么清晰。

最佳答案

如果您想了解语法,那么定义将如下所示

#include <iostream>

const char ( & ( f() ) )[6] { return ( "Hello" ); }

int main()
{
std::cout << f() << std::endl;
}

或者按照@Jarod42 的建议,您可以使用函数定义看起来更简单的 typedef

#include <iostream>

const char ( & ( f() ) )[6] { return ( "Hello" ); }

typedef const char ( &Array_Ref )[6];
Array_Ref g() { return ( "Hello" ); }

int main()
{
std::cout << f() << std::endl;
std::cout << g() << std::endl;

Array_Ref s = g();
std::cout << s << std::endl;
}

如果你想使用 std::string 那么最好将函数写成

std::string f() { return ( "Hello" ); }

关于c++ - 使用引用返回静态字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045656/

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