> For the complete documentation index, see [llms.txt](https://bla0x1s-organization.gitbook.io/untitled-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bla0x1s-organization.gitbook.io/untitled-1/reverse-engineering/c-programming/memory-address.md).

# MEMORY ADDRESS

Cuando se crea un variable, se asigna una direccion de memoria a la variable. La direccion es la ubicacion donde se almacena la variable en la computadora.

Cuando asignamos un valor a la variable, se almacena en esta direccion de memoria.

Para acceder a el, use el operador de referencia `&` y el resultado representa donde se almacena la variable:

```c
int edad = 30;
printf("%p", &edad);
```

La direccion de memoria esta en formato hexadecomal (0x..).

Tambien debe tener en cuenta que `&edad` a menudo se llama puntero. Un puntero basicamente almacena la direccion de memoria de una variable como su valor. Para imprimir un puntero, usamos el `%p` como especificador de formato.
