簡體   English   中英

為什么需要在C中的字符串數組中聲明字符串的長度?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM