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