Terminaison de chaîne – char c = 0 vs char c = ‘\ 0’

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.