Quand on termine une chaîne, il me semble que logiquement char c=0
équivaut à char c='\0'
, puisque l’octet “null” (ASCII 0) est à 0
, mais généralement les gens ont tendance à faire '\0'
. Est-ce purement de préférence ou devrait-il être une meilleure “pratique”?
Quel est le choix préféré?
EDIT: K & R dit : “La constante de caractère '\0'
représente le caractère avec la valeur zéro, le caractère nul. '\0'
est souvent écrit au lieu de 0
pour souligner le caractère de certaines expressions, mais la valeur numérique est juste 0
.
http://en.wikipedia.org/wiki/Ascii#ASCII_control_code_chart
Binary Oct Dec Hex Abbr Unicode Control char C Escape code Name 0000000 000 0 00 NUL ␀ ^@ \0 Null character
Il n’y a pas de différence, mais la plus idiomatique est '\0'
.
Peut-être le mettre comme un caractère char c = 0;
Cela pourrait signifier que vous avez l’intention de l’utiliser comme un numéro (par exemple un compteur), bien que je n’aie pas personnellement rencontré de code comme celui-là. '\0'
est sans ambiguïté.
'\0'
est juste un caractère ASCII. Identique à 'A'
ou '0'
ou '\n'
Si vous écrivez char c = '\0
‘, c’est la même chose que char c = 0;
Si vous écrivez le caractère char c = 'A'
, c’est la même chose que le caractère char c = 65
C’est juste une représentation de caractère et c’est une bonne pratique pour l’écrire, alors que vous voulez vraiment dire l’octet de chaîne NULL. Puisque char
est en C un octet (type intégral), il n’a aucune signification particulière.
Le choix préféré est celui qui permet aux lecteurs de votre code de comprendre comment vous utilisez votre variable – sous forme de nombre ou de caractère. La meilleure pratique consiste à utiliser 0 lorsque vous voulez dire un nombre et à utiliser «0» lorsque vous voulez dire que votre variable est un caractère.