[C] char c = "A";

Résolu
Shik -  
 Shik -
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à :)
A voir également:

1 réponse

fiddy Messages postés 11653 Statut Contributeur 1 847
 
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
Shik
 
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