有一个char数组,一个char指针数组,遍历char指针数组,将char指针数组乱序后再次遍历两个数组,相比未乱序之前的遍历,有什么区别?要求回答最本质的原因。
考察说明
考察数组与指针数组的内存布局和缓存局部性原理
回答思路
- 明确char数组元素是按顺序连续存储
- 明确char指针数组元素是指针,指向char数组中的不同元素
- 乱序遍历指针数组会破坏缓存局部性,导致缓存未命中增加,而直接遍历char数组则保持顺序访问
- 能从内存访问模式和数据依赖角度解释性能差异的本质
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。