Pourquoi ne pouvons-nous pas utiliser “%d”, en langage C, au lieu de “%u” avec des pointeurs?

%u est utilisé pour les nombres non signés.

J'obtiens les mêmes résultats si j'utilise %d au lieu de %u pour afficher l'adresse d'une variable.

Nous utilisons %u juste pour l'éthique ou faut-il faire une différence trop.

Regardez:

int i=5;
printf("Address of i: %d", &i);

est la même que:

printf("Again, address: %u" ,&i);

[EDIT] Un exemple où il génère un résultat différent serait appréciée.

  • Eh bien, je ne peux pas imaginer un négatif d'adressage virtuel. Et ne devriez-vous pas être à l'aide de %p?
  • Comment imprimer une adresse à l'aide %d? N'êtes-vous pas d'impression de la valeur d'ordures?
  • Suis en train de lire le livre "Laissez-nous C" Il utilisé '%u' tout le temps
  • Mauvais livre, plein d'erreurs. à éviter.
  • La valeur de &i va varier comme vous le compiler/exécuter le code. Ce n'est pas nécessairement déterministe.
  • Les résultats de l'un ne sont pas définis par la norme du langage C.

InformationsquelleAutor BlueFlame | 2013-05-24