C programlamasında garip bir deneyim yaşadım. Bu kodu düşünün:
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;
}
Bunu derleyip çalıştırdığımda herhangi bir hata veya uyarı almıyorum. Öğretim elemanımın dediği gibi dizi dizini -1
başka bir değişkene erişir. Hala kafam karıştı, neden dünyada bir programlama dili bu yeteneğe sahip? Yani, negatif dizi indekslerine neden izin verelim?
-1
diziler içermesidir ve bir alt dizinin elemanına başvurmak, daha büyük dizideki diziden önceki öğeye başvurmak için mükemmel geçerli bir yoldur. Diğeri ise, dizin geçersizse program geçersizdir, ancak çoğu uygulamada aralık dışı bir hata değil sessiz kötü davranış elde edersiniz.