Coo*_*der 5 c++ arrays pointers
我一直在读一本书,说通过指针算法访问数组元素比[]运算符快得多.简而言之,此代码比此代码更快.这本书没有说明原因.即使它提供了显着的速度提升,是否可以使用这种指针算法?
#include <iostream>
using namespace std;
int main() {
// your code goes here
double *array = new double[1000000];
for(int i = 0; i < 1000000; i++)
{
array[i] = 0;//slower?
}
delete[] array;
return 0;
}
#include <iostream>
using namespace std;
int main() {
// your code goes here
double *array = new double[1000000];
for(int i = 0; i < 1000000; i++)
{
*(array + i) = 0;//faster?
}
delete[] array;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
引自书第369页,最后一行
指针访问方法比数组索引快得多.