Pointers
Un pointer es una variable que contiene una dirección de memoria. &x te da la dirección de x; int *p declara p como un pointer a un int; *p desreferencia p, leyendo (o escribiendo) el valor al que apunta.
main.c
Pruébalo tú mismo →#include <stdio.h>
int main() {
int x = 42;
int *p = &x;
printf("%d\n", *p);
*p = 100;
printf("%d\n", x);
return 0;
}Output
42 100
*p = 100 no cambió a p mismo — cambió a x, la variable a la que apunta p. Este es el mecanismo que todos los demás lenguajes de este sitio esconden detrás de references, borrowing, o object handles: C te lo da directamente, sin restricciones sobre cuándo o cómo lo usas.
A continuación: pointers y arrays — cómo la indexación de arrays y la aritmética de pointers son en secreto la misma operación.
Practice exercise
Declara una variable x fijada en 10. Declara un pointer p a x, úsalo para fijar x en 99 a través del pointer, luego imprime x.