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

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

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

  • 写回答

1条回答 默认 最新

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名