Saya telah menemukan pengalaman aneh dalam pemrograman C. Pertimbangkan kode ini:
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;
}
Ketika saya mengkompilasi dan menjalankan ini, saya tidak mendapatkan kesalahan atau peringatan. Seperti kata dosen saya, indeks array -1
mengakses variabel lain. Saya masih bingung, mengapa ada bahasa pemrograman yang memiliki kemampuan ini? Maksud saya, mengapa mengizinkan indeks array negatif?
-1
-array dan merujuk ke elemen subarray adalah cara yang benar-benar valid untuk merujuk ke elemen sebelum array dalam array yang lebih besar. Yang lain adalah bahwa jika indeks tidak valid, program tidak valid, tetapi dalam kebanyakan implementasi Anda akan mendapatkan perilaku buruk yang diam, bukan kesalahan di luar jangkauan.