it-swarm.com.de

Zeichenfolgenbeendigung - char c = 0 vs char c = '\ 0'

Beim Beenden eines Strings scheint mir char c=0 Logisch gleich char c='\0' Zu sein, da das "Null" ASCII 0) - Byte 0 Ist, aber normalerweise dazu neigen Führen Sie stattdessen '\0' aus. Ist das rein aus Präferenz oder sollte es eine bessere "Praxis" sein?

Was ist die bevorzugte Wahl?


--- (EDIT: K & R sagt : "Die Zeichenkonstante '\0' Stellt das Zeichen mit dem Wert Null dar, das Nullzeichen. '\0' Wird häufig anstelle von 0 Geschrieben, um die Charaktereigenschaft einiger zu betonen Ausdruck, aber der numerische Wert ist nur 0.

45
Joe DF

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

Es gibt keinen Unterschied, aber der idiomatischere ist '\0'.

Schreibe es als char c = 0; könnte bedeuten, dass Sie beabsichtigen, es als Zahl zu verwenden (z. B. als Zähler). '\0' ist eindeutig.

39
Nobilis

'\0' ist nur ein ASCII Zeichen. Das gleiche wie 'A', oder '0' oder '\n'
Wenn Sie schreiben char c = '\0 ', es ist dasselbe wiechar c = 0;
Wenn Sie schreiben char c = 'A', es ist das gleiche wie char c = 65

Es ist nur eine Zeichenrepräsentation und es ist eine gute Übung, sie zu schreiben, wenn Sie wirklich das NULL-Byte eines Strings meinen. Da char in C ein Byte (ganzzahliger Typ) ist, hat es keine besondere Bedeutung.

18
Michal Bukovy

Die bevorzugte Wahl ist die, mit der die Leser Ihres Codes verstehen können, wie Sie Ihre Variable verwenden - als Zahl oder als Zeichen. Es wird empfohlen, 0 zu verwenden, wenn Sie die Variable als Zahl definieren, und '\ 0' zu verwenden, wenn Sie die Variable als Zeichen definieren.

3
Pupkov-Zadnij