После того, как я попытался решить проблему, я не смог решить следующий вопрос. Вопрос был задан в тесте «Высшая математика в инженерии» (GATE) 2014, Индия.Трехмерная матрица в программе c
Вопрос). Для программы C, получающей доступ к X[i][j][k]
, компилятор генерирует следующий промежуточный код. Предположим, что размер целого составляет 32 бита, а размер символа - 8 бит.
t0 = i * 1024
t1 = j * 32
t2 = k * 4
t3 = t1 + t0
t4 = t3 + t2
t5 = X[t4]
Какое из следующих утверждений о исходном коде для программы C является CORRECT?
(a) X объявлен как «int X[32][32][8]
».
(b) X объявлен как «int X[4][1024][32]
».
(c) X объявлен как «int X[4][32][8]
».
(d) X объявлен как «int X[32][16][2]
».
В одной из книг, в которых представлены решения предыдущих работ, говорится, что ответ является вариантом (a). Как? Любое объяснение
Заранее спасибо
Вы уверены, что все массивы имеют тип 'int'? – user3386109
Отредактировал вопрос с надлежащими вариантами в соответствии с официальным вопросом GATE 2014. См. Вопрос №. 34 этой статьи: http://gate.iitk.ac.in/GATE2015/docs/QP2014/CS02_2014.pdf –
@ShantanuPaul Это должно быть действительно комментарий, поскольку он отклоняется от первоначального намерения вопроса и соответствия ответы. – Emil