假设以下初始化:
char mystr[4] = "";
C99 标准是否保证初始化为空字符串的字符数组会将字符数组中的所有元素初始化为空字节?例如,标准是否保证mystr[2] == '\0'
?
这些初始化怎么样:
char myfoo[4] = { '\0' };
char mybar[4] = { 0 };
虽然我很确定显式设置字符数组的第一个元素将保证其余元素的隐式初始化为0
,但我怀疑字符串文字初始化会导致复制到数组 - 因此意味着复制单个 \0
到数组,而其余元素未初始化。