1

我正在声明一个这样的 char 数组-

char str[16]= "The world is";

我知道它的第 13 个字符将是 '\0'。但我对 str 中 16 之前的其余字符值感到好奇。是否都分配给'\0'。我搜索了它,但找不到很好的解释。所以我认为另一种最快的方法是在这里问。:)

4

1 回答 1

1

其余的将包含零。你实际上在做的是初始化你的数组,如下所示:

char str[16]= {'T','h','e',' ','w','o','r','l','d',' ','i','s','\0'};

如果你在 C 中初始化一个你给定长度的数组,用更短的东西,C 将用 0 填充其余部分。

示例:这将给出一个用零填充的数组

int str[16]= {0};

所以你写的相当于:

char str[16]= {'T','h','e',' ','w','o','r','l','d',' ','i','s','\0',0,0,0};

请注意0 == '\0'(均为 0000 ...)

于 2013-11-10T16:31:48.307 回答