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

Mar*_*ram 24 c++ initialization declaration

如果我有以下内容:

char test[10] = "#";
Run Code Online (Sandbox Code Playgroud)

test[1]通过test[9]保证\0吗?或者只test[1]保证是\0

Vla*_*cow 35

这个定义

char test[10] = "#";
Run Code Online (Sandbox Code Playgroud)

相当于

char test[10] = { '#', '\0' };
Run Code Online (Sandbox Code Playgroud)

这是数组的两个元素由初始化器显式初始化.数组的所有其他元素将初始化为零,隐式地将它们设置为'\ 0'

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

3如果初始化器的数量少于数组元素,则未明确初始化的每个元素都应进行零初始化(8.5).