C 为什么指针比数组更有效
为什么指针比声明数组更有效或更优越?您正在比较苹果和桔子 指针包含一个值,该值是另一个变量的地址。数组是项的连续集合。他们不一样 如果你澄清你的问题,我们可以给你一个更好的答案。就目前而言,它是非常没有意义的。在我的测试中(几年前),我发现了完全相反的结果——数组引用比指针快。我想这是用MSVC6.0实现的。这完全取决于编译器决定生成的汇编代码,而且是任意的 为了澄清,我比较了如下内容:C 为什么指针比数组更有效,c,C,为什么指针比声明数组更有效或更优越?您正在比较苹果和桔子 指针包含一个值,该值是另一个变量的地址。数组是项的连续集合。他们不一样 如果你澄清你的问题,我们可以给你一个更好的答案。就目前而言,它是非常没有意义的。在我的测试中(几年前),我发现了完全相反的结果——数组引用比指针快。我想这是用MSVC6.0实现的。这完全取决于编译器决定生成的汇编代码,而且是任意的 为了澄清,我比较了如下内容: for (int i = 0; i < length; ++i) sum += p[i];
for (int i = 0; i < length; ++i)
sum += p[i];
for (int i = 0; i < length; ++i)
sum += *p++;
for(int i=0;i
它们不是。根据C标准,a[x]
只是*(a+x)
的语法糖。
事实上,如果使用
a[x]
代替原始指针算法,现代处理器有时可以生成更快的代码,因为在这种情况下,一些静态分析可以计算更多信息,从而实现更积极的优化。原因是别名分析更容易。你只是在你的列表上发布作业中的问题吗?(顺便说一句,我不投反对票)好吧,我在你的最后一个问题上帮了你,但你现在可能应该慢下来。半小时内问3个问题可能太多了。如果这些是家庭作业中的问题,参考你的课本或询问你的教授。(也就是说,我希望在任何地方都不要问这样的问题,因为这是毫无意义的。)而且没有一个被接受的答案!