weixin_39559808 2017-09-20 02:06 采纳率: 12.5%
浏览 1641

数组和指针的访问效率问题

数组和指针哪一个访问效率高?是访问效率为什么?在网上看到两种声音,一种是指针的访问效率高,一种是数组的访问效率高(数组效率高的解释为指针间接访问,数组直接访问,故数组访问效率高)

  • 写回答

1条回答 默认 最新

  • tobyliu415 2017-09-20 03:47
    关注

    这个问题可能比较复杂,不过我觉得如果你使用的是C语言(一种高级语言)就最好不要纠结这个问题。
    我目前看到的讨论帖的实验都是基于特定编译环境的一些不成熟的实验。
    首先,大部分实验都是假设使用的VC6,本身VC6就是很古老的编译器,编译的代码质量不高,以此来讨论效率没有价值。
    其次,汇编语言的效率不是按照语句行数来说话,内存访问的效率主要决定因素是缓存是否命中,而不是语句多少。
    最后,很多编译器的优化选项对这个影响很大,例如-O0和-O9所产生的代码效率差异远大于这么一点点的效率差异。
    你要是有兴趣可以自己做个试验,在内存中开个数组,循环遍历,然后计算每秒钟可以遍历多少个内存单元。
    你会发现,当数组容量大于CPU缓存的时候,速度大约下降10倍!!!!!!!!这比20%左右的所谓效率差大太多了。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口