C++指针与数组的[]运算符比较?

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页,最后一行

指针访问方法比数组索引快得多.

Sho*_*hoe 5

不,他们完全是一回事.我绝对建议你放弃那本书,尽快选择另一本书.

即使有任何性能差异,x[12]过度的清晰度*(x + 12)也更为重要.