经过努力,我无法解决以下问题。在印度工程研究生能力测试(GATE)2014中提出了问题。c程序中的三维数组
问题)对于访问X[i][j][k]
的C程序,以下中间代码由编译器生成。假设一个整数的大小是32位,字符的大小是8位。
t0 = i * 1024
t1 = j * 32
t2 = k * 4
t3 = t1 + t0
t4 = t3 + t2
t5 = X[t4]
关于C程序的源代码,下列哪一项是正确的?
(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 2014-10-19 02:06:45
按照GATE 2014官方问题论文的正确选项编辑该问题。参见问题编号34本文:http://gate.iitk.ac.in/GATE2015/docs/QP2014/CS02_2014.pdf – 2015-01-13 16:25:25
@ ShantanuPaul这应该是一个评论,因为它偏离了问题的原意,而匹配答案。 – Emil 2015-01-14 11:20:55