我想知道 C++ 是否正确:
static char *arrayExample[] =
{
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
};
最佳答案
I would like to know if is correct write that in C++
static char *arrayExample[] =
{
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
};
即使您不添加 const
修饰符,它也会编译吗?是的,但它具有误导性。字符串字面量存储在内存区,源代码的所有字符串字面量都保存在内存区中,一个接一个。这意味着您不应该弄乱它(在 PC 中不会发生这种情况。但它可以映射到 ROM 内存)。
所以,基本上是正确的。但是,这个文字数组并不意味着要修改,因此您最好将其重写为:
static const char *arrayExample[] =
{
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
};
您已将其声明为static
:这意味着它只会在其自己的翻译单元(即创建它的 cpp 文件)中可见。如果那是您的意图(您不打算在翻译单元之间共享它),那完全没问题。
希望这对您有所帮助。
关于c++ - 静态 char* 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16830489/