Я натрапив на дивний досвід програмування на С. Розглянемо цей код:
int main(){
int array1[6] = {0, 1, 2, 3, 4, 5};
int array2[6] = {6, 7, 8, 9, 10, 11};
printf("%d\n", array1[-1]);
return 0;
}
Коли я компілюю та запускаю це, я не отримую жодних помилок чи попереджень. Як сказав мій лектор, індекс масиву має -1
доступ до іншої змінної. Я все ще плутаюся, чому на землі мова мов програмування має таку можливість? Я маю на увазі, чому дозволяють індекси негативного масиву?
-1
підматриці - цілком коректний спосіб позначення елемента перед цим масивом у більшому масиві. Інша полягає в тому, що якщо індекс недійсний, програма недійсна, але в більшості реалізацій ви будете мовчати поганою поведінкою, а не помилкою поза межами діапазону.