gpt4 book ai didi

c++ - 在 C++ 中存储字符串时,char* 和 char 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 01:51:38 24 4
gpt4 key购买 nike

我看到了这个例子:

const char* SayHi() { return "Hi"; }

它工作正常,但如果我尝试删除指针,它就不起作用,我想不通 说出为什么。

const char SayHi() { return "Hi"; } \\Pointer removed

如果我像这样给它分配一个字符,它就会工作:

const char SayHi() { return 'H'; } \\Pointer removed and only 1 character

但我不知道究竟是什么让它起作用。为什么一个指针能够容纳多个字符?指针不就是指向另一个变量的变量吗?这意味着什么?

最佳答案

那是因为根据定义,char 是一个单个 字符(就像您的第 3 种情况)。如果你想要一个字符串,你可以使用一个 char 的数组,它会衰减到 const char* (就像你的第一种情况),或者以 C++ 的方式,使用 std::string.

Here您可以阅读更多关于“数组衰减到指针”的内容。

关于c++ - 在 C++ 中存储字符串时,char* 和 char 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25879396/

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