Porque esta manera de acceder al valor del array no me da error

Iniciado por SebaC, 29 Mayo 2016, 16:48 PM

0 Miembros y 1 Visitante están viendo este tema.

SebaC

Hablo de este código

#include <stdio.h>

int main()
{
    int arr[ ] = { 1, 2, 3, 4 };
    int indice = 0;

    while(indice < 4)
    {
        printf("%d\n", indice[arr]);
        indice++;
    }
    return 0;
}


Porque este código compila y funciona correctamente?

AlbertoBSD

#1
Por la aritmetica de apuntadores....

Si sumas el indice mas el valor de la direccion a la que apunta apuntador estaras llegando a la misma posicion ya sea con

indice[arr]
o con
arr[indice]

Es como si tienes

*(indice + arr)

o

*(arr + indice)

Ya que la suma es conmutativa.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

JavierScars

Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad,  y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.