Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SebaC en 29 Mayo 2016, 16:48 pm



Título: Porque esta manera de acceder al valor del array no me da error
Publicado por: SebaC en 29 Mayo 2016, 16:48 pm
Hablo de este código

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int arr[ ] = { 1, 2, 3, 4 };
  6.    int indice = 0;
  7.  
  8.    while(indice < 4)
  9.    {
  10.        printf("%d\n", indice[arr]);
  11.        indice++;
  12.    }
  13.    return 0;
  14. }
  15.  

Porque este código compila y funciona correctamente?


Título: Re: Porque esta manera de acceder al valor del array no me da error
Publicado por: AlbertoBSD en 29 Mayo 2016, 17:36 pm
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

Código
  1. indice[arr]
o con
Código
  1. arr[indice]

Es como si tienes

Código
  1. *(indice + arr)

o

Código
  1. *(arr + indice)

Ya que la suma es conmutativa.

Saludos


Título: Re: Porque esta manera de acceder al valor del array no me da error
Publicado por: JavierScars en 29 Mayo 2016, 17:45 pm
INCREÍBLE no sabia que eso hacían los []  :o  ;-) ;-) ;-)