Подтвердить что ты не робот

Сильный синтаксис массива в многомерных массивах

Я знаю, что это правда:

x[4] == 4[x]

Что такое эквивалент для многомерных массивов? Является ли следующее верно?

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

Ответ 1

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)

Это означает, что все они эквивалентны.

Ответ 2

Да. В каждом случае x - массив, который распадается на указатель, а затем выполняет арифметику указателя.