Сильный синтаксис массива в многомерных массивах Я знаю, что это правда: x[4] == 4[x] Что такое эквивалент для многомерных массивов? Является ли следующее верно? x[4][3] == 3[x[4]] == 3[4[x]] Ответ 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 - массив, который распадается на указатель, а затем выполняет арифметику указателя.
Ответ 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 - массив, который распадается на указатель, а затем выполняет арифметику указателя.