C多维数组中奇怪的数组语法

我知道这是真的:

x[4] == 4[x] 

多维数组的等价物是什么? 以下是真的吗?

 x[4][3] == 3[x[4]] == 3[4[x]] 

x[y]定义为*(x + (y))

x[y][z]将变为*(*(x + (y)) + z)

x[y[z]]将变为*(x + (*(y + (z))))


x[4][3]将变为*(*(x + (4)) + 3) 会变成*(*(x + 4) + 3)

3[x[4]]变为*(3 + (*(x + (4))))变为*(*(x + 4) + 3)

3[4[x]]将变为*(3 + (*(4 + (x))))将变为*(*(x + 4) + 3)

这意味着它们都是等价的。

是。 在每种情况下, x是一个衰减到指针然后在其上执行指针算术的数组。