diferencia entre imprimir una dirección de memoria usando% u y% d en C?

Estoy leyendo un libro de C. Para imprimir una dirección de memoria de una variable, a veces el libro usa:

printf("%u\n",&n);

A veces, el autor escribió:

printf("%d\n",&n);

El resultado es siempre el mismo, pero no entiendo las diferencias entre los dos (sé% u para sin firmar).

¿Alguien puede dar más detalles sobre esto, por favor?

Muchas gracias

Respuestas a la pregunta(5)

Su respuesta a la pregunta