Zeichenkonstanten
Nach oben zu Zeichenkonstanten (Übersicht) - Index
Inhaltsverzeichnis
Eine Zeichenkonstante besteht aus einem oder mehreren in Apostrophen eingeschlossenen Zeichen, wie etwa 'A'
, '+'
oder '\n'
. In C haben einzelne Zeichenkonstanten den Datentyp int. In C++ hat eine Zeichenkonstante den Typ char. Multizeichenkonstanten haben in C und C++ den Datentyp int.
Weitere Informationen über Zeichenkonstanten finden Sie in den folgenden Themen: Die drei char-Typen|, Escape-Sequenzen, Wide-Character- und Mehr-Zeichenkonstanten, Unicode-Zeichentypen und Literale (C++11).
Größen von Zeichentypen in C und C++
Compilieren Sie folgenden Code für einen Vergleich der Zeichentypgrößen zuerst als C-Programm und dann als C++-Programm.
#include <stdio.h>
#define CH 'x' /* A CHARACTER CONSTANT */
void main(void) {
char ch = 'x'; /* A char VARIABLE */
printf("\nSizeof int = %d", sizeof(int) );
printf("\nSizeof char = %d", sizeof(char) );
printf("\nSizeof ch = %d", sizeof(ch) );
printf("\nSizeof CH = %d", sizeof(CH) );
printf("\nSizeof wchar_t = %d", sizeof(wchar_t) );
}
Hinweis: Größenangaben beziehen sich auf Bytes.
Größen von Zeichentypen in C und C++:
Ausgabe, wenn als C Programm compiliert | Ausgabe, wenn als C++-Programm compiliert |
---|---|
Sizeof int = 4 |
Sizeof int = 4 |
Sizeof char = 1 |
Sizeof char = 1 |
Sizeof ch = 1 |
Sizeof ch = 1 |
Sizeof CH = 4 |
Sizeof CH = 1 |
Sizeof wchar_t = 2 |
Sizeof wchar_t = 2 |
Vier Zeichenliteraltypen in C++11
Per Vorgabe enthält ein Zeichenliteral in C++ ein ANSI-Zeichen mit dem Datentyp char . In C++ und C++11 können Sie mit dem Präfix L
für ein Zeichenliteral festlegen, dass das Zeichenliteral ein Wide-Zeichen mit dem Datentyp wchar_t enthalten soll. In C++11 können Sie mit den Präfixen u
und U
für ein Zeichenliteral festlegen, dass das Zeichenliteral Unicode-Zeichen in der Codierung (Unicode-Zeichentypen und Literale (C++11)) UTF-16 (Datentyp char16_t) oder UTF-32 (Datentyp char32_t) enthalten soll.
Zum Beispiel können Sie in C++11-Programmen die folgenden Zeichenliterale verwenden:
'A'
- ANSI-Zeichen mit dem Datentyp char. Dieses Zeichenliteral weist ein Byte Arbeitsspeicher zu.L'A'
- Wide-Zeichen mit dem Datentyp wchar_t. Dieses Zeichenliteral weist zwei Byte Arbeitsspeicher zu.u'A'
- in UTF-16 codiertes Unicode-Zeichen mit dem Datentyp char16_t. Dieses Zeichenliteral weist zwei oder vier Byte Arbeitsspeicher zu (abhängig davon, ob dieses Zeichen zur Basic Multilingual Plane gehört).U'A'
- in UTF-32 codiertes Unicode-Zeichen mit dem Datentyp char32_t. Dieses Zeichenliteral weist vier Byte Arbeitsspeicher zu.
Siehe auch
- Konstanten
- Integerkonstanten
- Gleitkommakonstanten
- Die drei char-Typen
- Escape-Sequenzen
- Wide-Character- und Mehr-Zeichenkonstanten
- Unicode-Zeichentypen und Literale (C++11)
- String-Konstanten
- Aufzählungskonstanten
- Konstanten und ihre interne Darstellung
- Interne Darstellung numerischer Typen
- Konstantenausdrücke