Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Referencias y Desreferenciaciones | Punteros
Fundamentos de C

bookReferencias 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

Main.c

copy
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; }
Note
Nota

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.

Note
Nota

Esencialmente, *&x es lo mismo que x.

Main.c

Main.c

copy
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; }
Note
Nota

No confundas el operador de desreferenciación (*x) con el operador de multiplicación (x*y).

Tarea

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

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 6. Capítulo 2
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

Awesome!

Completion rate improved to 2.63

bookReferencias 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

Main.c

copy
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; }
Note
Nota

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.

Note
Nota

Esencialmente, *&x es lo mismo que x.

Main.c

Main.c

copy
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; }
Note
Nota

No confundas el operador de desreferenciación (*x) con el operador de multiplicación (x*y).

Tarea

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

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 6. Capítulo 2
single

single

some-alt