【发布时间】:2020-04-11 06:55:54
【问题描述】:
我正在尝试在 char 数组中综合我的知识,但我觉得我遗漏了一些东西。我只能想到这三个场景(说到堆栈,我不是在说做const int SIZE = 6; char *word = new char[SIZE];)
案例1:不允许
char *word = "message";
word[0] = 'M';
情况2:允许
const int SIZE = 8;
char word[SIZE] = "message";
word[0] = 'M';
案例3:允许
char word[] = "message";
word[0] = 'M';
还有其他方法可以在 C++ 中创建 char 数组吗?如果可以,可以进行哪些修改?
【问题讨论】:
-
你忘了
std::array。 -
请注意,
char *word = "message";在 C++11 及更高版本中是非法,甚至不应该编译(如果是这样,那么你的编译器有一个非标准扩展允许那)。字符串文字是只读数据,因此您必须(并且应该)使用指向const数据的指针,例如:const char *word = "message";。 -
const auto word = ...;是您可能想要的。
标签: c++ arrays pointers char stack