不是说开10个空间,只能储存9个字符,最后一个是\0。为什么我让他读入多少字符还是输出多少字符呢

毕设导航 论文问答 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[10];
scanf("%s",a);
printf("%s",a);

return 0;
}

回复

共1条回复 我来回复
  • 毕设工厂
    这个人很懒,什么都没有留下~
    评论

    数组是存放到一段连续的内存空间的,所以当输入内容比申明的空间大时,输入的内容会顺势向后继续填充,读取时一样会向后读取,直到遇到结束符为止,但是这样的用法会有安全风险,通常会破坏正常的堆栈空间,而且单存储空间不足时又可能会出现互相覆盖的情况

    0条评论

发表回复

登录后才能评论