我看到了这个例子:
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/