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

ype*_*eᵀᴹ 12 c arrays pointer-arithmetic multidimensional-array

我知道这是真的:

x[4] == 4[x]
Run Code Online (Sandbox Code Playgroud)

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

x[4][3] == 3[x[4]] == 3[4[x]]
Run Code Online (Sandbox Code Playgroud)

Pub*_*bby 14

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)

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