Direcciones de memoria en C

Imaginemos que la memoria del ordenador es como una fila de casillas en las que podemos almacenar datos. En cada una de ellas podemos almacenar una cantidad fija de información: 1 byte (8 bits = 8 ceros y unos que representan un carácter).

A cada una de estas casillas de nuestro ordenador, le corresponde una dirección de memoria.

De esta forma, cuando en nuestro programa usamos una variable, internamente lo que estamos haciendo es referirnos a unas posiciones de memoria (es decir un lugar de la memoria), que han sido reservadas cuando se produjo la declaración de ésta – Prog098

/* Prog098.cpp */

#include <stdio.h>
void main()
{
int num; num=78;
printf(«n La dirección de memoria de la variable num es %p»,&num); printf(«n El valor de la variable num es %d»,num);
}

Graba el programa PROG098, en TuCarpeta.

Ejecútalo varias veces.

Estudio del PROG098:

– La dirección de memoria de la variable num, no es más que un numero en sistema de numeración hexadecimal (por eso aparecen letras), que indica el lugar de la memoria donde se guarda el valor de la variable.
– Debe quedar clara la diferencia entre valor de una variable y su dirección de memoria.

Identificador de formato: 

– Para el valor de una variable int es %d Para la dirección de memoria es %p
– Para acceder a una variable:
Nombre de la variable: accedemos a su valor
&nombre de la variable: accedemos a su dirección de memoria.

Fuente: Programación en C/C++ (Manual FV) de Fermí Vilà