所以我有一套简单的代码:
#includeint main() { char x[3] = "ABC"; // (*) puts(x); return 0; }
它返回一个奇怪的输出:
ABC¬ a
使用从上面的回答这个问题,我发现,当我改变x[3]
对x[4]
一切都正常运行.
但为什么?为什么我会得到一个奇怪的输出x[3]
,为什么x[4]
还好?
终止没有空间\0
.事实上,我希望在这种情况下编译失败.
尝试
char x[4] = "ABC";
或者,正如@Zeta建议的那样
char x[] = "ABC";