这是代码:
这是编译时的输出结果:
我不明白为什么value[8]会返回1784505816?难道value[8]不应该等于value[6]和value[7]都等于0吗?顺便说一下,我是在Mac OS X Lion下通过gcc编译的代码。
#include <stdio.h>
int main (void)
{
int value[10];
int index;
value[0] = 197;
value[2] = -100;
value[5] = 350;
value[3] = value[0] + value[5];
value[9] = value[5] / 10;
--value[2];
for(index = 0; index < 10; ++index)
printf("value[%i] = %i\n", index, value[index]);
return 0;
}
这是编译时的输出结果:
value[0] = 197
value[1] = 0
value[2] = -101
value[3] = 547
value[4] = 0
value[5] = 350
value[6] = 0
value[7] = 0
value[8] = 1784505816
value[9] = 35
我不明白为什么value[8]会返回1784505816?难道value[8]不应该等于value[6]和value[7]都等于0吗?顺便说一下,我是在Mac OS X Lion下通过gcc编译的代码。
int value[10] = {};
,那么它们将被初始化为零。 - C. K. Young{0}
。这是一个 C 语言问题。 - CB Bailey{}
是gcc的扩展(当使用-pedantic
编译时,会出现“warning: ISO C forbids empty initializer braces”警告消息)。(可惜现在对我的评论来说已经太晚了,唉。) - C. K. Young