当我对以下代码进行一些细微更改时,我注意到了一些差异:
#include<stdio.h>
int main()
{
int arrow;
printf("%d\n", arrow);
int wheel[12]={17, 38, 23, 17, 19, 41, 13, 17, 12, 11, 15, 23};
int initialValue = wheel[arrow];
printf("%d\n", initialValue);
arrow = (arrow + 1) % 12;
printf("%d\n", arrow);
}
当我删除最后两行时,箭头的初始值为1,这对应于值&#39; 38&#39;在数组中。但是,使用完整的代码,箭头的初始值变为0,它指向值&#39; 17&#39;在数组中。我想知道为什么会这样吗?
非常感谢!
答案 0 :(得分:2)
对于没有static
的函数内定义的对象,没有默认值。它们的初始值是不确定的,通常,未设置值的行为是未定义的。