【发布时间】:2013-02-14 17:22:39
【问题描述】:
为什么我可以在数组 "char array[3]" 中存储超过 3 个字符? 例如,在这段代码中:
#include <stdio.h>
char array[3];
main()
{
scanf("%s", array);
putchar(array[5]);
return 0;
}
您可以输入任意长度的文本,它将打印第 6 个字母。你也可以用"printf("%s", array) 打印整个文本。为什么这个数组只有3个字符的空间?
【问题讨论】:
-
查找未定义的行为
-
这肯定是重复的吧?或许在提供多个相同答案之前先结束此类问题?
-
OT:你必须喜欢问为什么某事有效的问题,而不是那些经常被问到的问题:那些无效。
标签: c arrays string char scanf