Conceptos de programación: punteros

Veamos cómo se utilizan los punteros en el lenguaje de programación C.

Vamos a tratar con dos variables:

aptr

También vamos a encontrarnos con dos personajes clave:

- where
would return the address location of variable
- where
means follow the memory address stored in ptr and set that location to 8

Supongamos que a está ubicado en la dirección 0x8130 en la memoria y ptr en 0x8134; también suponga que esta es una máquina de 32 bits, de manera que un int es de 32 bits en tamaño. Lo siguiente es lo que estaría en la memoria después de que se ejecute el siguiente fragmento de código:

int a = 5;int *ptr = NULL;

Dirección Contenido
0x8130 0x00000005
0x8134 0x00000000

(El puntero NULL que se muestra aquí es 0x00000000.) Asignando la dirección de a a ptr:

 ptr = &a;

produce los siguientes valores de memoria:

Dirección Contenido
0x8130 0x00000005
0x8134 0x00008130

Luego, al eliminar la referencia ptr codificando:

 *ptr = 8;

la computadora tomará el contenido de ptr (que es 0x8130), «ubique» esa dirección y asigne 8 a esa ubicación para obtener la siguiente memoria:

Dirección Contenido
0x8130 0x00000008
0x8134 0x00008130

Claramente, acceder a a producirá el valor de 8 porque la instrucción anterior modificó el contenido de

mediante el puntero ptr.

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *