我对 C 编程很陌生,所以请随时纠正我,我坚持。我对 C 中的字符串的基本理解是,当我们初始化一个字符串时,会在字符串的末尾自动分配一个空字符,并且空字符不能读取或写入,而是仅在内部使用。
因此,当我创建一个大小为 4 as 的字符串char str[3]
并为其分配一个单词“RED”并使用 puts 函数或打印它时printf("%s",str)
,我得到一个不寻常的输出打印为RED(SMIILEY FACE)
然后我再次减小字符串的大小char str[2]
并将 RED 分配给它,然后编译它并再次收到一个输出说明RE(Smiley face)
如果有人可以向我解释,我将不胜感激。在下面发布C代码
int main()
{
char s1[3]="RED";
char s2[]="RED";
puts(s1);
puts(s2);
printf("%s",s1);
return 0;
}