Contenido del Curso
C Básico
C Básico
Referencias y Desreferencias
Los punteros se construyen alrededor de dos operadores:
- El operador de dirección
&
. - El operador de desreferencia
*
.
Operador de Dirección
El operador de dirección, representado por &
, nos permite interactuar directamente con la RAM de nuestra computadora. Usar &
te permite obtener la dirección de memoria real de un objeto.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Nota
%p
es el especificador de formato utilizado para direcciones (puntero).
Las direcciones se expresan típicamente en notación hexadecimal.
Piensa en el operador &
como identificar la dirección de tu hogar usando tu nombre.
Operador de Desreferencia
Por el contrario, el operador *
te da el nombre del residente cuando se le da su dirección. Entonces, ¿cómo podemos emplear este operador si no estamos tratando directamente con direcciones? Si tienes una expresión como &x
, que devuelve la dirección de la variable x
, aplicar el operador *
a ella (*&x
) te da el valor de la variable almacenada en esa dirección.
Nota
Esencialmente,
*&x
es lo mismo quex
.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Swipe to show code editor
- Crea un arreglo de enteros de 5 elementos y pueblalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, dirección + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.
¡Gracias por tus comentarios!
Referencias y Desreferencias
Los punteros se construyen alrededor de dos operadores:
- El operador de dirección
&
. - El operador de desreferencia
*
.
Operador de Dirección
El operador de dirección, representado por &
, nos permite interactuar directamente con la RAM de nuestra computadora. Usar &
te permite obtener la dirección de memoria real de un objeto.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Nota
%p
es el especificador de formato utilizado para direcciones (puntero).
Las direcciones se expresan típicamente en notación hexadecimal.
Piensa en el operador &
como identificar la dirección de tu hogar usando tu nombre.
Operador de Desreferencia
Por el contrario, el operador *
te da el nombre del residente cuando se le da su dirección. Entonces, ¿cómo podemos emplear este operador si no estamos tratando directamente con direcciones? Si tienes una expresión como &x
, que devuelve la dirección de la variable x
, aplicar el operador *
a ella (*&x
) te da el valor de la variable almacenada en esa dirección.
Nota
Esencialmente,
*&x
es lo mismo quex
.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Swipe to show code editor
- Crea un arreglo de enteros de 5 elementos y pueblalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, dirección + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.
¡Gracias por tus comentarios!