Właśnie czytałem kod i odkryłem, że osoba używała arr[-2]dostępu do drugiego elementu przed arr, na przykład:
|a|b|c|d|e|f|g|
^------------ arr[0]
^---------- arr[1]
^---------------- arr[-2]
Czy to jest dozwolone?
Wiem, że arr[x]to to samo co *(arr + x). Tak arr[-2]jest *(arr - 2), co wydaje się OK. Co myślisz?
somearray-2są niezdefiniowane, chyba że wynik mieści się w zakresie od początkusomearraydo 1 po jego końcu.