定义一个数组时,到底要不要给”\0"留个位置
char string0[3] = { "abc" };//没有 \0 的位置,输出会越界
但是
#include <stdio.h>
int main(void) {
char a[5];
scanf("%s", a);
printf("%s", a);
return 0;
}
定义数组a的长度为5,输入“hello”的长度为5,结果能正常输出,输出“hello”
为什么不会出现上一个代码的问题呢?定义一个数组时,到底要不要给”\0"留个位置?请求帮忙解决一下,谢谢。