string array[] = "";
Run Code Online (Sandbox Code Playgroud)
我怎么能分配一个const char*数组?这是一样的:
string array[] = {""};
Run Code Online (Sandbox Code Playgroud)
?? 这对我来说很有意义.但是,这仍然不起作用
int array[] = 5;
Run Code Online (Sandbox Code Playgroud)
那么它们之间的区别在于它对int数组不起作用?
这是错误的代码; 你的编译器(可能是gcc/g ++?)中的一个错误就是接受它.
clang给出以下错误(链接):
a.cpp:5:17: error: array initializer must be an initializer list
std::string array[] = "";
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
Visual C++同意(链接):
testvc.cpp(2) : error C3074: an array can only be initialized with an initializer-list
Run Code Online (Sandbox Code Playgroud)
标准中的相关条款是8.5p17:
[...]
- 如果目标类型是字符数组,char16_t数组,char32_t数组或wchar_t数组,初始值设定项是字符串文字,请参见8.5.2.
[...]
- 否则,如果目标类型是数组,则程序格式错误.
[...]
提交给gcc作为错误:http://gcc.gnu.org/bugzilla/show_bug.cgi? id = 60009