将char数组初始化为字符串值时,未初始化的索引被设置为null

Initialisation of char array to string value, are the uninitialised indices set to null?

本文关键字:初始化 索引 null 设置 数组 char 字符串      更新时间:2023-10-16

如果我有以下内容:

char test[10] = "#";

test[1]test[9]一定是吗?还是只有test[1]保证是 ?

这个定义

char test[10] = "#";

等价于

char test[10] = { '#', '' };

即数组的两个元素由初始化器显式初始化。数组的所有其他元素都将被初始化为零也就是说它们将被隐式地设置为''

根据c++标准(第8.5.2节字符数组)

3如果初始化式的个数少于数组元素的个数,则未显式初始化的元素为零初始化(8.5)。