#include "stdio.h"main(){char a[5],c;int i=0;while((c=getchar())!='\n') a[i++]=c;printf("%s",a);}当输入字符超过5位!会产生什么后果?计算机是如何处理该问题的?
只知道会溢出,异常。。。。。
第二题;应改为:char a[5]="rytyfie";它长度超出,本身编译就不能通过;
第一个会有异常,第二个只输出前5个字符.
不是吧我运行出来: 第一个:显示前5个,在换行显示乱码
第二个就显示乱码!其实我想知道原理而不是结果!
像第二个问应该报错
第一个 应该因为 a 没有为后面的分 内存.所以后面的只是内存中 原有的数据.我想 实际上 这个很危险,和指针一样,后面的是随机内存数据.第二 也是既然没分后面的内存,就全乱了.