【C/C++】字符数组的初始化

在C++中,如果你声明了一个字符数组,并没有进行初始化赋值,那么每个元素的初始值是不确定的,而不是默认为 '\0'

只有在以下情况下,数组的元素会被自动初始化为 '\0'

  1. 使用静态存储期的字符数组,在全局作用域或者静态变量中声明数组时,编译器会将数组的所有元素初始化为 '\0'
char a[110]; // 所有元素都被初始化为 '\0'
  1. 使用动态存储期的字符数组,并使用括号初始化器进行初始化时,未显式赋值的元素会被自动初始化为 '\0'
char a[110] = {
    
    }; // 所有元素都被初始化为 '\0'

所以,如果你声明了一个字符数组 char a[110]; 但没有进行初始化赋值,每个元素的初始值是不确定的,可能是任意值,而不是默认为 '\0'。如果你希望所有元素都初始化为 '\0',可以使用上述提到的方法之一进行初始化。

猜你喜欢

转载自blog.csdn.net/XiugongHao/article/details/130901680#comments_35222354
今日推荐