formatage de printf ("%d versus %u)
Quelle est la différence entre %d
et %u
lors de l'impression de pointeur d'adresses?
Par exemple:
int a = 5;
//check the memory address
printf("memory address = %d\n", &a); //prints "memory address = -12"
printf("memory address = %u\n", &a); //prints "memory address = 65456"
S'il vous plaît! ranger ça, de mettre votre code dans les blocs de code (indentation avec 4 espaces), et de poser vos questions dans une manière qu'il peut être répondu!
Personne ne comprends ce qu'il en venir? Si oui, veuillez résumer, semble être une simple question, je ne peux pas le suivre.
J'ai fait de mon mieux pour le rendre clair sans ruiner" le message d'origine.
Grâce GMan
Si vous attendez de votre question pour obtenir la réponse, passer plus de 30 secondes en l'écrivant. Utiliser la bonne orthographe, les majuscules, la ponctuation et la structure.
Personne ne comprends ce qu'il en venir? Si oui, veuillez résumer, semble être une simple question, je ne peux pas le suivre.
J'ai fait de mon mieux pour le rendre clair sans ruiner" le message d'origine.
Grâce GMan
Si vous attendez de votre question pour obtenir la réponse, passer plus de 30 secondes en l'écrivant. Utiliser la bonne orthographe, les majuscules, la ponctuation et la structure.
OriginalL'auteur | 2009-07-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver une liste de mise en forme s'échappe sur cette page.
%d
est un entier signé, alors que%u
est un entier non signé. Les pointeurs (lorsqu'ils sont traités comme des numéros) sont généralement non-négatif.Si vous voulez afficher un pointeur, utilisation de la
%p
spécificateur de format.Veuillez expliquer la baisse de vote.
Oui, bon, GMan. Pourquoi quelqu'un voudrait-il dire "cette réponse est mauvaise", mais de donner des conseils pour l'améliorer? Que serait productive.
OriginalL'auteur GManNickG
Si je comprends votre question correctement, vous devez
%p
pour afficher l'adresse d'un pointeur est à l'aide, par exemple:va afficher quelque chose comme:
OriginalL'auteur Luca Matteis
%u imprime entier non signé
%d imprime entier signé
pour obtenir une adresse de pointeur utilisation %p
Autre Liste de mise en forme s'Échappe:
Voici la liste complète de mise en forme s'échappe. Je suis juste de donner une capture d'écran de cette page
OriginalL'auteur Md. Alamin Mahamud
%u est utilisé pour un entier non signé. Depuis l'adresse mémoire donnée par le nombre entier signé adresse de l'opérateur de %d est de -12, pour obtenir cette valeur en nombre entier non signé, le Compilateur renvoie la valeur d'entier non signé pour cette adresse.
OriginalL'auteur
La différence est simple: ils causent des différents messages d'avertissement émis lors de la compilation:
Si vous passez le pointeur de votre souris comme un
void*
et l'utilisation%p
que les indicateurs de conversion, alors vous n'obtenez pas de message d'erreur:OriginalL'auteur Toby Speight