La definición de [] subíndice operator operator en C, según (C99, 6.5.2.1p2), es que
E1[E2] is identical to (*((E1)+(E2)))
Los compiladores usan la aritmética de punteros internamente para acceder a los elementos de la array. Y debido a las reglas de conversión que se aplican al operador binario +, si E1 es un objeto de array (equivalentemente, un puntero al elemento inicial de un objeto de array) y E2 es un número entero, E1[E2] designa el elemento E2-th de E1 (contando desde cero).
Por lo tanto, a[b] se define como:
a[b] == *(a + b)
Entonces evaluará a
a[8] == *(a + 8)
Aquí, a es un puntero al primer elemento de la array y a[8] es el valor de un elemento que está 8 elementos más lejos de a, que es lo mismo que *(a + 8) y 8[a] evaluará a seguir lo que significa que ambos son iguales.
8[a] == *(8 + a)
Entonces, por propiedad conmutativa adicional , a[8] == 8[a]
Programa de muestra que muestra los resultados anteriores:
// C program to illustrate // a[i] == i[a] in arrays #include <stdio.h> int main() { int a[] = {1, 2, 3, 4, 5, 6, 7}; printf("a[5] is %d\n", a[5]); printf("5[a] is %d\n", 5[a]); return 0; }
Producción:
a[5] is 6 5[a] is 6
Este artículo es una contribución de Mandeep Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA