Referencias y Desreferenciaciones
Los punteros se basan en dos operadores:
- El operador de dirección
&. - El operador de desreferenciación
*.
Operador de dirección
El operador de dirección, representado por &, permite interactuar directamente con la memoria RAM del ordenador. Usar & 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; }
El especificador de formato utilizado para imprimir direcciones (punteros) es %p.
Las direcciones suelen expresarse en notación hexadecimal.
Operador de desreferenciación
Por otro lado, el operador * te da el nombre del residente cuando se le proporciona 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, al aplicar el operador * a ella (*&x) obtienes el valor de la variable almacenado en esa dirección.
Esencialmente, *&x es lo mismo que x.
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; }
No confundas el operador de desreferenciación (*x) con el operador de multiplicación (x*y).
Swipe to start coding
- Crear un arreglo de enteros de 5 elementos y llenarlo.
- Obtener la dirección del tercer elemento.
- Incrementar la dirección del tercer elemento y desreferenciar la dirección incrementada para imprimir el valor al que apunta.
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
Awesome!
Completion rate improved to 2.63
Referencias y Desreferenciaciones
Desliza para mostrar el menú
Los punteros se basan en dos operadores:
- El operador de dirección
&. - El operador de desreferenciación
*.
Operador de dirección
El operador de dirección, representado por &, permite interactuar directamente con la memoria RAM del ordenador. Usar & 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; }
El especificador de formato utilizado para imprimir direcciones (punteros) es %p.
Las direcciones suelen expresarse en notación hexadecimal.
Operador de desreferenciación
Por otro lado, el operador * te da el nombre del residente cuando se le proporciona 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, al aplicar el operador * a ella (*&x) obtienes el valor de la variable almacenado en esa dirección.
Esencialmente, *&x es lo mismo que x.
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; }
No confundas el operador de desreferenciación (*x) con el operador de multiplicación (x*y).
Swipe to start coding
- Crear un arreglo de enteros de 5 elementos y llenarlo.
- Obtener la dirección del tercer elemento.
- Incrementar la dirección del tercer elemento y desreferenciar la dirección incrementada para imprimir el valor al que apunta.
Solución
¡Gracias por tus comentarios!
single