为什么编译器可以知道有多少字符串,但不知道它们包含多少字符? 例如,这有效:
char songs[][30]{
"A string",
"Another string"
};
而且这个没有:
char songs[][]{
"A string",
"Another string"
};
答案 0 :(得分:4)
如果对常量字符串没问题,那么就不行。
const char *strings[] = {
"foo",
"bar",
"baz",
"quux",
};
如果你想要制作一个char
s的二维数组,那么你需要给它字符串长度的唯一时间就像
char strings[][5] = {
"foo",
"bar",
"baz",
"quux",
};
C可以猜测最外层维度,但数组中的项目必须是完整类型,并且未知长度的char
数组不完整,但char[5]
和{{1}都是是的。