C++数组下标差异



我有一个像一样声明的数组

float dati[10];

我通常给数组加下标,如下所示

dati[2] = 5;

但我也见过其他类型的子脚本,比如

2[dati] = 5;

*(dati+2) = 5;

有人能告诉我这三个有什么区别吗?

编译器将a[i]翻译为*(a+i),因此此位将您的第一种和第三种索引方式连接起来。

现在,a是数组的第一个元素的地址,也就是指针,i是积分常数或变量,a + ii + a是一样的。这意味着以下内容也包含

a[2] = *(a + 2) = *(2 + a) = 2[a]

因此,这三种方法都是访问数组第三个元素的等效方法。

最新更新