为什么指针比使用中的数组更有效

时间:2010-04-16 04:18:05

标签: c

为什么指针比声明数组更有效或更优?

3 个答案:

答案 0 :(得分:5)

您将苹果与橙子进行比较。

指针包含一个值,该值是另一个变量的地址。数组是一个连续的项集合。它们不一样。

如果你澄清了你的问题,我们可以给你一个更好的答案。就目前而言,它毫无意义。

答案 1 :(得分:1)

他们不是。根据C标准,a[x]只是*(a+x)的语法糖。 实际上,如果使用a[x]而不是原始指针算法,现代处理器有时可以生成更快的代码,因为在这种情况下,某些静态分析可以计算更多信息,从而实现更积极的优化。原因是更容易进行别名分析。

答案 2 :(得分:0)

在我的测试中(几年前)我发现完全相反 - 数组引用比指针快。我认为这是MSVC 6.0。这完全取决于编译器决定生成的汇编代码,而且它非常随意。

为了澄清,我正在比较以下内容:

for (int i = 0;  i < length;  ++i)
    sum += p[i];

for (int i = 0;  i < length;  ++i)
    sum += *p++;