在C++中,如果你声明了一个字符数组,并没有进行初始化赋值,那么每个元素的初始值是不确定的,而不是默认为 '\0'
。
只有在以下情况下,数组的元素会被自动初始化为 '\0'
:
- 使用静态存储期的字符数组,在全局作用域或者静态变量中声明数组时,编译器会将数组的所有元素初始化为
'\0'
。
char a[110]; // 所有元素都被初始化为 '\0'
- 使用动态存储期的字符数组,并使用括号初始化器进行初始化时,未显式赋值的元素会被自动初始化为
'\0'
。
char a[110] = {
}; // 所有元素都被初始化为 '\0'
所以,如果你声明了一个字符数组 char a[110];
但没有进行初始化赋值,每个元素的初始值是不确定的,可能是任意值,而不是默认为 '\0'
。如果你希望所有元素都初始化为 '\0'
,可以使用上述提到的方法之一进行初始化。