Это вопрос одного из сайтов кодирования ....Распределение памяти массива
Замените "?" с целым числом, так что выход равен 4.
int main()
{
int arr[7];
int b,c,d,a;
a=4;
printf("%d",arr[?]);
return 0;
}
Я попытался понять это и нашел, что ответ будет -4. Теперь, если я объявляю еще одну переменную (например, int b, c, d, e, a в строке 4 кода), ответ получился равным -5.
Пожалуйста, объясните, как работает компилятор, и причина распределения памяти (отрицательные индексы).
Там нет правильного ответа на этот вопрос - вы может быть в состоянии найти значение, которое дает желаемый результат, но оно будет специфичным для компилятора и специфичным для архитектуры и будет полагаться на неопределенное поведение. –
Ну, вы не инициализировали 'arr', чтобы вы никогда не знали! –
Тот, кто задал вам этот вопрос, не знает программирования на С. – Lundin