Привет, любители кодирования!!

Сегодня мы собираемся углубиться в одну такую ​​сложную концепцию, которую должен знать каждый программист: Как Arr[i] эквивалентен i[Arr].

Мы часто знаем, что для индивидуального доступа к элементам массива мы используем Arr[i]. Но самое интересное то, что мы можем получить доступ даже с помощью i[Arr]. Разве это не интересно!! Да.

Разберемся на примере:

Предположим, имеется массив Arr = [11, 15, 17, 20, 22]. Теперь, чтобы получить доступ ко второму элементу массива, то есть 15, мы используем Arr[1]. Это можно понимать как выражение указателя *(Arr + 1), т. е. указывающее на второй элемент массива.

Теперь приготовьтесь к повороту событий: мы можем добиться того же результата, используя 1[Arr]. Да, Вы прочли это правильно!

1[Arr] не только действителен, но и функционально идентичен Arr[1]. В этом случае 1[Arr] преобразуется в *(1 + Arr), что, что неудивительно, равно *(Прибытие + 1).

Суммируя,

Прибытие[3] -> *(Прибытие + 3)

3[Прибытие] -> *(3 + Прибытие)

Оба выражения, (Arr + 3) и (3 + Arr) в конечном итоге указывают на то же самое адрес памяти в массиве.

Надеюсь, вы поняли концепцию!