différence entre imprimer une adresse mémoire en utilisant% u et% d en C?

J'ai de la lecture d'un C livre. Pour imprimer une adresse mémoire d'une variable, parfois, le livre utilise:

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

Parfois, l'auteur a écrit:

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

Le résultat est toujours le même, mais je ne comprends pas les différences entre les deux (je sais, %u pour les non signé).

Quelqu'un peut-il fournir des précisions sur ce, s'il vous plaît?

Merci beaucoup.

source d'informationauteur ipkiss