C语言中的数组上限

San*_*ali 0 c arrays

在c程序中,我们可以初始化一个数组int array[10].所以它可以存储10个整数值.但是当我使用循环给出输入时,它输入超过10并且不显示任何错误.实际上发生了什么?

#include<stdio.H>
main()
{
 int array[10],i;
 for(i=0;i<=11;i++)
 scanf("%d",&array[i]);
 for(i=0;i<10;i++)
 printf("%d",array[i]);
} 
Run Code Online (Sandbox Code Playgroud)

Jul*_*ian 7

因为C不做任何数组边界检查.作为程序员,您有责任确保不进行索引.

根据所使用的编译器和运行代码的系统,您可能会从内存中读取随机数据,或者在读取/写入越界时最终获取SIGSEGV.