为什么编译器知道多少字符串但不知道它们包含多少字符?例如,这有效:
char songs[][30]{
"A string",
"Another string"
};
而且这个没有:
char songs[][]{
"A string",
"Another string"
};
如果您可以使用常量字符串,那么就不可以。
const char *strings[] = {
"foo",
"bar",
"baz",
"quux",
};
唯一需要给它提供字符串长度的时间是,如果您尝试制作char
s的二维数组,例如
char strings[][5] = {
"foo",
"bar",
"baz",
"quux",
};
C可猜测的最外尺寸,但在阵列中的项目必须是完整的类型和阵列char
未知长度的是不完整的,但两者char[5]
和const char *
是。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句