Llevando la contraria sobre la sintaxis de arrays en C
Hola, hoy quería mostrar una pequeña ida de olla, hechadle un vistazo al siguiente código:
1 2 3 4 5 6 7 8 |
|
Compila, y hace lo que parece, pero tiene algo extraño... el orden variable [posición] está invertido, por que sigue funcionando.
Lo que pasa es que la posición de memoria se calcula como <dirección a la que apunta 'variable'> + (<posición> * <tamaño de una unidad de la variable>). Para los strings, el "tamaño de una unidad" es 1, así que queda como: <dirección a la que apunta variable> + <posición>, la suma es conmutativa, así que las posiciónes se pueden intercambiar.
ps: Obviamente esto no se debería hacer en código "real", por lo que pueda pasar si cambian los tipos de datos ;)
Saludos