C数组算术和指针

And*_*ndy 5 c arrays pointers integer-arithmetic

可能重复:
在C数组中为什么这是真的?a [5] == 5 [a]

我正在阅读关于C的教程,我遇到了这种语法:

int doses[] = {1, 3, 2, 1000};
doses[3] == *(doses + 3) == *(3 + doses) == 3[doses]
Run Code Online (Sandbox Code Playgroud)

现在重点是获得int 1000,但最后一个没有任何意义.要么它的晚期和我的大脑没有运作,它的特定于C的东西,或它的错字.我想在指针上涵盖我所有的基础知识,仔细阅读它.这意味着要理解这一切.任何答案将不胜感激!

Rot*_*tem 7

来自维基百科

由于表达式a [i]在语义上等效于*(a + i),其又等于*(i + a),因此表达式也可以写为i [a],尽管很少使用这种形式.