我对编程比较陌生,所以当有人建议构建一个结构数组(每个结构包含特定“项目”的 n 个属性)比构建 n 个属性数组更快时,我发现我对数组的了解不够以一种或另一种方式争论。
我读到这个:
和
但我仍然不明白 C 程序如何通过索引从数组中检索特定值。
很明显,数组的数据元素在内存中相邻存储,并且数组名称指向第一个元素。
C 程序是否足够聪明,可以根据数据类型和索引进行算术运算以找出目标数据的确切内存地址,或者程序是否必须以某种方式在每个中间数据块到达那里之前对其进行迭代(如在链表数据结构)?
更根本的是,如果一个程序通过它的内存地址请求一条信息,机器是如何找到它的?