我有一个像一样声明的数组
float dati[10];
我通常给数组加下标,如下所示
dati[2] = 5;
但我也见过其他类型的子脚本,比如
2[dati] = 5;
和
*(dati+2) = 5;
有人能告诉我这三个有什么区别吗?
编译器将a[i]
翻译为*(a+i)
,因此此位将您的第一种和第三种索引方式连接起来。
现在,a
是数组的第一个元素的地址,也就是指针,i
是积分常数或变量,a + i
和i + a
是一样的。这意味着以下内容也包含
a[2] = *(a + 2) = *(2 + a) = 2[a]
因此,这三种方法都是访问数组第三个元素的等效方法。