Lo que hace ese programilla es una cosa así
Codigo:
main ()
{
int fa[N], *fp1, *fp2; // Array de 11 enteros y dos punteros a entero.
int i;
fp1 = fp2 = fa; // fp1 y fp2 apuntan al array (a la dirección de memoria de su primer elemento).
*fa = 1; // Asignamos el valor 1 al primer elemento del array.
for ( i = 1; i < N; i++ ) // Desde i=1 hasta i=11...
*(fa+i) = *(fa+i-1) + fa[i-1]; // ...asignamos al elemento cuya posición en memoria es la de *fa + i
// lo que vale el elemento anterior + lo que vale el elemento anterior (multiplica por 2).
while ( fp2 != &fa[N] ){ // Mientras fp2 no apunte a la posición de memoria siguiente al último elemento del aray...
printf ( "<%d, %d>
", fp2-fp1, *fp2); // ...mostramos dirección a la que apunta fp2 - dirección a la que apunta fp1(ésta no cambia).
// ...mostramos el contenido de la posición apuntada por fp2.
// ...es decir,mostramos el índice del array y su contenido
fp2++; // Incrementamos fp2 para recorrer todas las direcciones de memoria del array.
}
}