为什么数组只能有两个元素,输入多与2个,但是还是会输出完整内容呢?不会溢出吗?
#include<stdio.h>
main()
{
char a[2];
scanf("%s",a);
printf("%s",a);
}
为什么数组只能有两个元素,输入多与2个,但是还是会输出完整内容呢?不会溢出吗?
#include<stdio.h>
main()
{
char a[2];
scanf("%s",a);
printf("%s",a);
}
你这个a数组只能存放一个有效字符啊
作为字符串来说,字符数组必须保留一位存储字符串结束符。所以a[2]实际只能存储一个有效字符。你输入hello,它会写从a数组起始地址往后写,导致越界输入。程序可能会崩溃
能完整输出说明你运气好,a数组后面的内存空间正好是空闲的,没有被其它程序占用。