为什么只有第二个数组维度很重要?

2024-04-14

为什么在处理二维数组时只有第二维对编译器很重要?我就是无法理解这一点。 谢谢


因为编译器需要弄清楚如何从内存中访问数据。第一个维度并不重要,因为当给定所有其他大小时,编译器可以计算项目的数量。

例子:

int a1[] = { 1, 2, 3, 4 }

编译器知道为 4 个整数分配空间。现在,有了这个:

int a2[][] = { 1, 2, 3, 4, 5, 6} }

编译器无法决定它应该是a2[1][6]还是a2[2][3]还是a2[3][2]还是a2[6][1]。一旦你告诉它第二个维度,它就可以计算第一个维度。

例如,尝试访问元素 a2[1][0] 将根据声明产生不同的值。你可能会得到 2、3、4 甚至无效的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么只有第二个数组维度很重要? 的相关文章

随机推荐