miércoles, 20 de febrero de 2008

Curiosidades de C++

Una curiosidad de C++ es el que cuando se accede a un elemento de un array se pueden intercambiar el índice del array con el array, veamos un ejemplo:

int array[20];
...
array[0] = 1;
1[array] = 2;

En el primer caso se accede al primer elemento y en el segundo también, esto compila (que ya es mucho decir) y funciona (que ya es la repera) en cualquier compilador.

La explicación es bastante sencilla ya que en el fondo un array es un puntero constante, no se puede cambiar el valor del puntero si de lo que apunta, y por lo tanto entra en la aritmetica de punteros y la suma es conmutativa y el orden de los sumandos no altera el resultado.

1 comentario:

Anónimo dijo...

Muy curioso, que esta lógica tanto del estilo ensamblador, siga siendo válida hoy día.