gpt4 book ai didi

c++ - const数组如何在每个元素中只能包含字符,而char *数组却能够指向每个元素中的字符串?

转载 作者:行者123 更新时间:2023-12-01 14:40:33 24 4
gpt4 key购买 nike

char characters[] = {'h','e','l','l','o'};


char* characters[] = {"h","e","l","l","o"};

后者如何能够指向单个字符串?

最佳答案

由于类型不同。在第一个示例中,您有一个char数组,在第二个示例中,您有一个指向chars的指针数组(如果需要,可以是数组的数组)。 String literals的类型为const char[],它转换为const char*。在第二个示例中,您应该有一个const限定词:

const char* characters[] = {"h","e","l","l","o"};

碰巧您的字符串文字中包含一个字符,后跟一个隐藏的空终止符。因此,如果您有:
const char test[] = "h";

您实际拥有的是:
const char test[] =  {'h', '\0'};

添加一个指向上述示例的指针,您将获得一个以null结尾的字符数组。
为了使事情更清楚,您还可以:
const char* characters[] = {"hello","world","etc"};

选择 std::string而不是上面的方法,因为它可以为您完成所有繁重的工作。

关于c++ - const数组如何在每个元素中只能包含字符,而char *数组却能够指向每个元素中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52093193/

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