【发布时间】:2010-12-04 19:46:15
【问题描述】:
我已经声明了一个长度为 N 的数组(假设)。现在,我使用循环为该数组的元素分配一些值(循环变量用作数组的索引)。代码如下:
int main()
{
int arr[4], j;
for(j=0; j<10; j++)
{
printf("%d\n", j);
arr[j] = 0;
sleep(1);
printf("%d\n\n", j);
}
return 0;
}
我预计输出为 0 1 2 .. 9。但实际发生的是,当赋值 arr[N+2]=0(在本例中为 arr[6]=0)时 j 被重置为 0在循环中执行。 这里到底发生了什么?我错过了什么吗?
【问题讨论】: