【发布时间】:2015-06-27 15:24:30
【问题描述】:
考虑案例:
char s1[] = "abc";
s1[3] = 'x';
printf("%s", s1);
据我所知,printf 会打印字符,直到找到空字符然后停止。
当我用'x' 覆盖空字符时,为什么printf 正确打印s1 数组?它如何找到空字符?
【问题讨论】:
-
小心区分 array(其中每个元素可以保存任何值)和 C 字符串(根据定义,它在第一个
0代码处结束)。您的代码将恰好形成有效 C 字符串的数组转换为无效 C 字符串。