有关默认整数值的问题

时间:2018-01-20 09:42:19

标签: c

当我对以下代码进行一些细微更改时,我注意到了一些差异:

#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;在数组中。我想知道为什么会这样吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

对于没有static的函数内定义的对象,没有默认值。它们的初始值是不确定的,通常,未设置值的行为是未定义的。