J'ai rencontré une expérience étrange en programmation C. Considérez ce code:
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;
}
Lorsque je compile et exécute ceci, je ne reçois aucune erreur ni avertissement. Comme l'a dit mon conférencier, l'index du tableau -1
accède à une autre variable. Je suis toujours confus, pourquoi diable un langage de programmation a-t-il cette capacité? Je veux dire, pourquoi autoriser les indices de tableau négatifs?
-1
d'un sous-tableau est un moyen parfaitement valide de faire référence à l'élément avant ce tableau dans le tableau le plus grand. L'autre est que si l'index n'est pas valide, le programme n'est pas valide, mais dans la plupart des implémentations, vous obtiendrez un mauvais comportement silencieux, pas une erreur hors plage.