int m=10,n=5,a[10]={10,15,20};
void f1(void);
void f2(int m);
main()
{
int i;
for(i=0;i<7;i++)
f1();
f2(1);
printf("\n%d,%d",a[m],a[n]);
system("pause");
}
void f1(void)
{
static int n=3;
a[n]=a[n-1]+a[n-2]+a[n-3];n++;
}
void f2(int m)
{
for(;m<3;m+=2)
{
int m;
for(m=1;m<4;m++)
printf("%d,",a[m++]);
}
}
输出是 15,45, 10,145
谁能解释一下为什么a[m]=10? 标题为“a”的数组是否在最多 a[9] 内?
最佳答案
C/C++ 编译器不绑定(bind)数组检查。但行为是不可预测的。它可能会损坏内存,或者可能崩溃,或者运行时可能没有任何错误。
关于c - C语言中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113858/