如果我有以下情况:
char test[10] = "#";
test[1]
到test[9]
一定是\0
吗?或者只是test[1]
保证是\0
?
这个定义
char test[10] = "#";
相当于
char test[10] = { '#', '\0' };
即数组的两个元素由初始化器显式初始化。数组的所有其他元素都将被初始化为零,即隐式地将它们设置为“”
根据 C++ 标准(第 8.5.2 节字符数组)
3 如果初始化器的数量少于数组元素的数量,则每个 未显式初始化的元素应为零初始化(8.5)。