C es el lenguaje para entender los punteros. Son una característica poderosa del lenguaje para manejar la administración de memoria. Si está luchando con el concepto de asignación de memoria estática y dinámica (malloc y gratis), primero comenzaría por eso. Sin esa comprensión, manejar adecuadamente los punteros será un juego de adivinanzas que a veces te dará los resultados correctos con el código absolutamente incorrecto.
Una forma de describirlos: los punteros son una información que se relaciona con otra (probablemente) información mucho más grande. Piensa en un puntero como tu número de teléfono. Tu número de teléfono no eres tú. Es una serie de números que solo tiene una función: encontrarte. No le preguntarías a un número de teléfono cuántos años tengo o qué estoy haciendo ahora, usarías el número de teléfono para llamarme y luego me harías ese tipo de preguntas. En C, esto se denomina desreferenciar el puntero, y una regla general simple es que para cada puntero a un tipo necesitará una desreferencia correspondiente de esa variable para acceder al tipo de información que se declaró. Esto es complicado cuando se trata de punteros a punteros (a punteros …), pero comienza de manera simple. Trabajaría en la creación de aplicaciones de prueba simples donde asigne memoria para una estructura de datos dinámicamente, pase el puntero a esa estructura en una función, haga que esa función modifique la estructura y luego pruebe los resultados una vez que haya regresado de la función. Aprenda a usar el depurador para ver cada paso de ese proceso.
Uno de los mejores libros que he leído sobre C, algo que realmente me ayudó a entender el modelo de memoria de UNIX y C se llama “Programación experta en C: Secretos profundos en C” de Peter Van Der Linden. También encontré “Unix Network Programming” de W. Richard Stevens es una gran lectura simplemente porque contiene muchos ejemplos de aplicaciones prácticas de C. “La práctica de la programación” de Brian W. Kernighan y Rob Pike también es buena. Estos libros han permanecido en mis estantes después de que muchos hayan encontrado un lugar en la papelera de reciclaje. Algo anticuado, pero muy informativo.
- Cuando comenzó a aprender programación, ¿cuál era ese lenguaje de programación, qué libro, curso o sitio web utilizó y cómo manejó el tiempo para aprender?
- ¿Qué libro debería sugerirle a mi sobrino que está en 6to estándar (12 años) para comenzar a aprender programación?
- ¿Cuáles son algunos libros de lectura obligatoria para un programador de C? ¿Cuáles son los libros de programación C que han cambiado la forma en que escribes el código C?
- ¿Cuál es el mejor libro para C #?
- ¿Cuál es el mejor libro para aprender programación funcional con Haskell?