[C] char c = "A";

Résolu/Fermé
Shik - 11 avril 2011 à 06:08
 Shik - 11 avril 2011 à 19:48
Salut tout le monde.

Je (re)découvre le C après avoir mis mon étude de ce langage de coté pendant quelques mois, j'ai donc repris à la base pour refaire quelques tests histoire de voir si j'avais pas trop perdu la main :)

Et j'ai assez vite rencontré un petit problème, lors de l'initialisation d'un char j'ai mis des " au lieu des '. Je m'en suis assez vite rendu compte mais une question me taraude, si j'écris
char c="A";
printf("%d",c);
le résultat affiché est "100", mais je peux écrire n'importe quoi entre mes guillemets(n'importe quel caractère, chaine de caractère, ou même rien) j'obtiens toujours "100" comme résultat.

J'ai fait différents tests mais je ne trouve pas d'explication.
Ma question est donc, d'ou sort cette valeur ?

Si quelqu'un a une réponse je l'en remercie déjà :)

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
11 avril 2011 à 07:46
Bonjour
L'initialisation du char s'effectue entre apostrophe pas entre guillemet. D'ailleurs le compilateur doit vous prevenir.
Si tu mets entre guillemet, tu specifies au compilateur que tu parles de chaines de caracteres. Ta variable c va donc contenir l'adresse de la chaine mais "tronque" car le char va de 0 a 255 (capacite plus petite que celle du void*).
Cdlt
0
Effectivement, c'est logique, je viens de voir que le compilateur m'affiche bien un message lors de la compilation.
Merci pour ta réponse :)
0