Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么指针比数组更有效_C - Fatal编程技术网

C 为什么指针比数组更有效

C 为什么指针比数组更有效,c,C,为什么指针比声明数组更有效或更优越?您正在比较苹果和桔子 指针包含一个值,该值是另一个变量的地址。数组是项的连续集合。他们不一样 如果你澄清你的问题,我们可以给你一个更好的答案。就目前而言,它是非常没有意义的。在我的测试中(几年前),我发现了完全相反的结果——数组引用比指针快。我想这是用MSVC6.0实现的。这完全取决于编译器决定生成的汇编代码,而且是任意的 为了澄清,我比较了如下内容: for (int i = 0; i < length; ++i) sum += p[i];

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

您正在比较苹果和桔子

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

如果你澄清你的问题,我们可以给你一个更好的答案。就目前而言,它是非常没有意义的。

在我的测试中(几年前),我发现了完全相反的结果——数组引用比指针快。我想这是用MSVC6.0实现的。这完全取决于编译器决定生成的汇编代码,而且是任意的

为了澄清,我比较了如下内容:

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个问题可能太多了。如果这些是家庭作业中的问题,参考你的课本或询问你的教授。(也就是说,我希望在任何地方都不要问这样的问题,因为这是毫无意义的。)而且没有一个被接受的答案!