我试着回忆五年前我简短的C经历.
我可以发誓我读到一个已定义但未初始化的字符串被设置为所有空值.换句话说
char string[10];
由10个空字符组成
char string[10] = "Kevin";
由字母"K"、"e"、"v"、"i"、"n"和五个空组成.
这是真的吗
- 总是
- 有时,取决于编译器?
- 从不
我试着回忆五年前我简短的C经历.
我可以发誓我读到一个已定义但未初始化的字符串被设置为所有空值.换句话说
char string[10];
由10个空字符组成
char string[10] = "Kevin";
由字母"K"、"e"、"v"、"i"、"n"和五个空组成.
这是真的吗
换句话说,这个字符字符串[10];由10个空字符组成,
这取决于where和变量.
char here_yes[10]; // 10 '\0' characters
int main() {
char here_no[10]; // 10 unknown garbage values
static char but_here_also_yes[10]; // also 10 '\0' characters
}
这个字符串[10]="Kevin";由字母"K"、"e"、"v"、"i"、"n"和五个空组成.这是真的吗:永远?
对如果部分初始化一个字符串或变量,则其余部分将填充'\0'
或零.
char this_has_10_nulls[10] = "";
int main() {
char this_has_ab_followed_by_8_nulls[10] = { 'a', 'b' };
static char this_has_Kevin_followed_by_5_nulls[10] = "Kevin";
}