Contenido del Curso
Fundamentos de C
Fundamentos de C
Referencias y Desreferencias
Los punteros se construyen en torno a 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 memoria RAM de nuestro ordenador. El uso de &
permite obtener la dirección real de memoria 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 normalmente en notación hexadecimal.
Piense en el operador &
como si identificara la dirección de su casa utilizando su nombre.
Operador de Desreferencia
Por el contrario, el operador *
nos da el nombre del residente cuando se nos 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
, al aplicarle el operador *
(*&x
) obtienes 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("Dereferenssing address of varialbe: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Tarea
- Crea un array de enteros de 5 elementos y rellénalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, address + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.
¡Gracias por tus comentarios!
Referencias y Desreferencias
Los punteros se construyen en torno a 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 memoria RAM de nuestro ordenador. El uso de &
permite obtener la dirección real de memoria 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 normalmente en notación hexadecimal.
Piense en el operador &
como si identificara la dirección de su casa utilizando su nombre.
Operador de Desreferencia
Por el contrario, el operador *
nos da el nombre del residente cuando se nos 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
, al aplicarle el operador *
(*&x
) obtienes 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("Dereferenssing address of varialbe: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Tarea
- Crea un array de enteros de 5 elementos y rellénalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, address + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.
¡Gracias por tus comentarios!
Referencias y Desreferencias
Los punteros se construyen en torno a 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 memoria RAM de nuestro ordenador. El uso de &
permite obtener la dirección real de memoria 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 normalmente en notación hexadecimal.
Piense en el operador &
como si identificara la dirección de su casa utilizando su nombre.
Operador de Desreferencia
Por el contrario, el operador *
nos da el nombre del residente cuando se nos 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
, al aplicarle el operador *
(*&x
) obtienes 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("Dereferenssing address of varialbe: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Tarea
- Crea un array de enteros de 5 elementos y rellénalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, address + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.
¡Gracias por tus comentarios!
Los punteros se construyen en torno a 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 memoria RAM de nuestro ordenador. El uso de &
permite obtener la dirección real de memoria 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 normalmente en notación hexadecimal.
Piense en el operador &
como si identificara la dirección de su casa utilizando su nombre.
Operador de Desreferencia
Por el contrario, el operador *
nos da el nombre del residente cuando se nos 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
, al aplicarle el operador *
(*&x
) obtienes 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("Dereferenssing address of varialbe: %d", *(&x)); // using dereference operator `*` return 0; }
Nota
No confundas el operador de desreferencia (
*x
) con el operador de multiplicación (x*y
).
Tarea
- Crea un array de enteros de 5 elementos y rellénalo.
- Recupera la dirección del tercer elemento.
- Incrementa la dirección del tercer elemento (es decir, address + 1).
- Intenta desreferenciar la dirección obtenida en el paso anterior.