Tag: 未指定行为

使用指定的初始值设定项初始化数组时的奇怪值

当我初始化数组时,除了values[3]之外,所有输出看起来都没问题。 由于某种原因, values[3]初始化为values[0]+values[5]输出非常大的数字。 我的猜测是,我试图在将values[0]+values[5]正确存储到内存之前进行分配,但如果有人能够解释这将是很好的。 int main (void) { int values[10] = { [0]=197,[2]=-100,[5]=350, [3]=values[0] + values[5], [9]= values[5]/10 }; int index; for (index=0; index<10; index++) printf("values[%i] = %i\n", index, values[index]); return 0; } 输出如下: values[0] = 197 values[1] = 0 values[2] = -100 values[3] = -1217411959 values[4] = 0 values[5] = 350 values[6] = 0 […]