scanf 輸入字串大於數組長度怎不會報錯
#include<stdio.h>void main()
{
char string;
scanf("%s",string);
printf("%s",string);
}我在教學與書籍 都說要先聲明數組大小
但是我在輸入字串長度要是大於數組長度
都可以打印出來也不會報錯為何
scanf("%s",string); 这句话的意思是吧接收到的字符串放到内存中以string里存放的值得那个地址为开始应为是字符串所以就会连续往下了 你输入输出值是用了数组名而已没有对数组进行任何操作 当然不会报错 我试了试,如果用Visual C++ 6.0的话,如果输入多于5个字符,就会不正常跳出;
如果你用任意版本的gcc(我用的gcc 4.8.2),输入7个字符的字符串,就会出现Process exited with return value 7,这表明在接收7个字符时不正常结束。 嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻 支持小甲鱼,赞点鱼币回来下载 路过看看 = =
页:
[1]