我读了一个关于以下区别的问题:
const char*
和
const char[]
有一段时间,我认为数组只是指针的语法糖。但是有些事情困扰着我,我有一段类似于以下的代码:
namespace SomeNamespace {
const char* str = { 'b', 'l', 'a', 'h' };
}
我得到,错误:缩放器对象'str'需要初始化器中的一个元素。所以,我尝试了这个:
namespace SomeNamespace {
const char str[] = { 'b', 'l', 'a', 'h' };
}
它起作用了,起初我认为这可能与以下事实有关但错误似乎并非如此。然而在:
void Func() {
const char* str = { 'b', 'l', 'a', 'h' };
}
它按预期编译得很好。有谁知道为什么会这样?
x86_64/i686-nacl-gcc 4(.1.4?) 胡椒 19 工具链(基本上是 GCC)。