Tabla de contenidos
Los punteros son uno de los aspectos más potentes de la programación en C, pero también uno de los más complejos de dominar. Los punteros permiten manipular la memoria del ordenador de forma eficiente. Dos conceptos son fundamentales para comprender el funcionamiento de los punteros:
El tamaño de todas variables y su posición en memoria.
Todo dato está almacenado a partir de una dirección de memoria. Esta dirección puede ser obtenida y manipulada también como un dato más.
Los punteros son también una de las fuentes de errores más frecuente. Dado que se manipula la memoria directamente y el compilador apenas realiza comprobaciones de tipos, el diseño de programas con punteros requiere una meticulosidad muy elevada que debe ir acompañada de una dosis idéntica de paciencia. Programar eficientemente usando punteros se adquiere tras escribir muchas líneas de código pero requiere una práctica sostenida.
Te recomendamos que leas este documento con tu entorno de desarrollo preparado para probar pequeños fragmentos de código y programas. Debes compilarlos y ejecutarlos para comprobar que se comportan como esperas.
Todos los datos se almacenan a partir de una dirección de memoria y utilizando tantos bytes como sea necesario. Por ejemplo, considera la siguiente definición de datos y su correspondiente representación en memoria a partir de la dirección 100.
Asumiendo que int
y float
ocupan 4
bytes cada uno, y char
ocupa 1 byte, si d1
está
almacenada a partir de la posición 100, entonces su campo
n1
tiene esa misma dirección, el campo n2
está en
la posición 104 y el campo st
está almacenado a partir de la
posición 108.