Странные значения при инициализации массива с использованием назначенных инициализаторов

Когда я инициализирую массив ниже, все выходные данные выглядят нормально, кроме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
values[7] = 0
values[8] = 0
values[9] = 35

Ответы на вопрос(5)

Ваш ответ на вопрос