14

我知道这是真的:

x[4] == 4[x]

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

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

2 回答 2

15

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)

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

于 2011-11-13T02:54:18.567 回答
1

是的。在每种情况下x,都是一个数组,它衰减为一个指针,然后对其执行指针运算。

于 2011-11-13T02:55:20.530 回答