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.c
123456789101112#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.c
1234567891011121314#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 start coding
- 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.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Resumir este capítulo
Explicar el código en file
Explicar por qué file no resuelve la tarea
Awesome!
Completion rate improved to 2.63
Referencias y Desreferencias
Desliza para mostrar el menú
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.c
123456789101112#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.c
1234567891011121314#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 start coding
- 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.
Solución
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 2.63single