[英]Why is it necessary to declare a string's length in an array of strings in C?
為什么編譯器可以知道有多少個字符串卻不知道它們包含多少個字符? 例如,這有效:
char songs[][30]{
"A string",
"Another string"
};
而且這個沒有:
char songs[][]{
"A string",
"Another string"
};
如果您可以使用常量字符串,那么就不可以。
const char *strings[] = {
"foo",
"bar",
"baz",
"quux",
};
唯一需要給它提供字符串長度的時間是,如果您嘗試創建char
的二維數組,例如
char strings[][5] = {
"foo",
"bar",
"baz",
"quux",
};
C可以猜測最外面的維,但是數組中的項必須是完整類型,並且未知長度的char
數組不是完整的,但是char[5]
和const char *
都可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.