edición general

Listas enlazadas, trucos con punteros y buen gusto [ENG]

#1 Nunca hay que sacrificar la legibilidad. Un código poco legible sólo lleva a cometer más errores, a tardar más en modificarlo, y a necesitar programadores muy experimentados
Sólo en casos extremos que afecten al rendimiento sacrifico la legibilidad.
#1 #5 El problema es que la legibilidad depende de quien lee, no de quien escribe. Lo que a ti te puede parecer obvio, a otros no, y viceversa. Y depende también especialmente de los conocimientos que se tengan del lenguaje en cuestión (y también estoy de acuerdo con #3 en este punto).

En este caso basta con tener conocimientos normales de C para entenderlo (no así para desarrollarlo, ese es otro tema), por lo que yo siempre iré por la solución óptima en lugar de la más “legible” por las razones antes indicadas.

#8 En cero, por supuesto, porque un array (en C) no es más que una suma de un número (puntero al primero elemento) más un offset, que es cero, evidentemente, para el primer elemento ;)

Otra cosa son los arrays en Pascal, en D, en Java, en Javascript… que aunque también empiezan en cero, su implementación es totalmente diferente.

menéame