Zeichen

Der Programmtext (Code) von C und C++ wird in einfache Textdateien (ASCII-Dateien) geschrieben. Es genügen weniger als 100 Zeichen, um die Sprache vollständig abzudecken. Viele Zeichen werden dabei für verschiedene Elemente gleichzeitig benutzt. Die Verwendung der Zeichen ist hier aufgelistet.

Druckbare Zeichen

'' Character-WertEscape-Sequenz \'Einfache Anführungszeichen, auch Apostroph oder im Englischen auch single quote genannt. Treten im Programmtext immer paarweise auf.
"" String-WertEscape-Sequenz \"Doppelte Anführungszeichen, im Englischen auch quotation mark genannt. Treten im Programmtext immer paarweise auf.
+ Additions-Operator +Positiv-Operator +Pre-Inkrement-Operator ++Post-Increment-Operator ++Additions-Zuweisungs-Operator +=positiver fester WertPlus-Zeichen.
- Subtraktions-Operator -Negativ-Operator -Pre-Dekrement-Operator --Post-Decrement-Operator --Subtraktions-Zuweisungs-Operator -=Pointer-Zugriffs-Operator ->Pointer-Member-Operator ->*negativer fester WertMinus-Zeichen, im Englischen auch hyphen genannt.
* Multiplikations-Operator *Multiplikations-Zuweisungs-Operator *=Dereferenz-Operator *Feld-Member-Operator .*Pointer-Member-Operator ->*Pointer *Funktions-Pointer (*)()geklammerte Kommentare /* */Multiplikations-Zeichen, auch Sternchen oder im Englischen auch Asterisk genannt.
/ Divisions-Operator /Divisions-Zuweisungs-Operator /=einzeilige // und geklammerte Kommentare /* */Divisions-Zeichen, auch Slash genannt.
% Modulo-Operator %Modulo-Zuweisungs-Operator %=String-Formatierung Prozent-Zeichen.
= Gleich-Operator ==Ungleich-Operator !=Kleiner-Gleich-Operator <=Grösser-Gleich-Operator >=Zuweisungs-Operator =Additions-Zuweisungs-Operator +=Subtraktions-Zuweisungs-Operator -=Multiplikations-Zuweisungs-Operator *=Divisions-Zuweisungs-Operator /=Modulo-Zuweisungs-Operator %=Shift-Left-Zuweisungs-Operator <<=Shift-Right-Zuweisungs-Operator >>=AND-Zuweisungs-Operator &=OR-Zuweisungs-Operator |=XOR-Zuweisungs-Operator ^=Gleich-Zeichen.
() OperatorenklammerungFunktionsaufruf-Operatorsizeof(Objekt)-Operatorsizeof(Typ)-OperatorCasting-OperatorMember-Initialisierungtypeid(Objekt)-Operatortypeid(Typ)-OperatorFunktionenFunktions-PointerRunde Klammern, im Englischen auch parantheses genannt. Treten im Programmtext immer paarweise auf. Die Klammerung muss wohlgeformt sein, was bedeutet, dass jede schliessende Klammer ) vorher durch eine eindeutige öffnende Klammer ( eingeleitet worden sein muss.
[] Array-Element-OperatorArray-Speicher-Reservations-OperatorArray-Speicher-Freigabe-OperatorArraysEckige Klammern, im Englischen auch brackets genannt. Treten im Programmtext immer paarweise auf. Die Klammerung muss wohlgeformt sein, was bedeutet, dass jede schliessende Klammer ] vorher durch eine eindeutige öffnende Klammer [ eingeleitet worden sein muss.
{} AnweisungsblöckeDefinitionenAggregats-InitialisierungenGeschweifte Klammern, im Englischen auch curly brackets genannt. Treten im Programmtext immer paarweise auf. Die Klammerung muss wohlgeformt sein, was bedeutet, dass jede schliessende Klammer } vorher durch eine eindeutige öffnende Klammer { eingeleitet worden sein muss.
< Kleiner-Operator <Kleiner-Gleich-Operator <=Shift-Left-Operator <<Shift-Left-Zuweisungs-Operator <<=const_cast<>-Operatorreinterpret_cast<>-Operatorstatic_cast<>-Operatordynamic_cast<>-OperatorKleiner-Zeichen
> Grösser-Operator >Grösser-Gleich-Operator >=Shift-Right-Operator >>Shift-Right-Zuweisungs-Operator >>=Pointer-Zugriffs-Operator ->Pointer-Member-Operator ->*const_cast<>-Operatorreinterpret_cast<>-Operatorstatic_cast<>-Operatordynamic_cast<>-OperatorGrösser-Zeichen
; AnweisungenInitialisierungenBedingungen der for-SchleifeKontrollstrukturen ohne AnweisungsblockStrichpunkt-Zeichen, auch Semikolon genannt.
: Bereichs-Operator ::Global-Bereichs-Operator ::Bedingungs-Operator ?:Labelcase-Labeldefault-Labelprivate:protected:public:BitfelderDoppelpunkt-Zeichen, auch Kolon genannt.
, Sequenz-Operator ,Komma-Zeichen.
. Feldzugriffs-Operator .Feld-Member-Operator .*Fliesskomma-Wertevariadischen Funktionenvariadischen MakrosAbfangen beliebiger ExceptionsPunkt-Zeichen
! Logisch-NOT-Operator !Ungleich-Operator !=Ausrufe-Zeichen.
? Bedingungs-Operator ?:Frage-Zeichen
~ Bitweise-NOT-Operator ~Tilde-Zeichen
^ Bitweise-XOR-Operator ^XOR-Zuweisungs-Operator ^=Xor-Zeichen, auch Dach-, Hoch- oder im Englischen Power-Zeichen genannt.
| Bitweise-OR-Operator |Logisch-OR-Operator ||OR-Zuweisungs-Operator |=Or-Zeichen, auch Senkrechtstrich oder im Englischen Pipe-Zeichen genannt.
& Bitweise-AND-Operator &Logisch-AND-Operator &&AND-Zuweisungs-Operator &=Adressen-Operator &ReferenzenAnd-Zeichen, auch Kaufmanns-Und oder im Lateinischen Et-Zeichen genannt.
\ Escape-ZeichenEscape-Sequenz \\Zusammenfügen von ZeilenBackslash-Zeichen
# PreprozessorHash-Zeichen, auch Nummern-Zeichen, Gartenhag oder im Englischen Sharp-Zeichen genannt.
space WhitespacesSpace-Zeichen, auch Leerschlag genannt. Wird im Programmtext verwendet, um einzelne Programmelemente voneinander abzutrennen und den Code übersichtlich zu gestalten.
_Das Underscore-Zeichen wird in C und C++ als zusätzlicher Buchstabe angesehen. Es ist somit möglich, beispielsweise eine Variable mit dem Namen _meine_variable zu deklarieren. Sehr häufig werden compiler- oder architekturabhängige Makros mit einem oder zwei (ganz selten mit drei) vorgehängten Underscores definiert (Beispielsweise _T_SIZE oder __restrict__). Eine häufig gesehene Konvention ist auch, dass private Felder von Klassen mit dem Underscore beginnen. Da das Underscore-Zeichen einen fast unsichtbaren Strich darstellt, wird es gerne verwendet, um Namen bestehend aus mehreren Wörtern visuell lesbarer zu machen.
$Das Dollar-Zeichen hat in C und C++ keine besondere Bedeutung sondern wird als zusätzlicher Buchstabe angesehen. Es ist somit möglich, beispielsweise eine Variable mit dem Namen $die$super$variable zu deklarieren. Nach allgemeinem Bewusstsein wird dies jedoch heutzutags nicht mehr verwendet.
@At-Zeichen, auch Klammeraffe oder Wirbelzeichen genannt. Hat in C und C++ keine Bedeutung. Andere Sprachen erlauben dieses Zeichen als zusätzlichen Buchstaben, in C und C++ ergibt dies Syntax-Fehler. In Objective-C (was hier nicht weiter ausgeführt wird) wird dieses Zeichen verwendet, um Konstruktoren von gewissen Klassen einfacher anzusprechen sowie Prototypen anzugeben. Einige Compiler/Linker von C und C++ jedoch verwendet das Zeichen für Name-Mangling, genauer als Kennzeichnung des Namens mit dem zu einem Typ zugeordneten Attribut.
`Akzent-Zeichen. Hat in C und C++ keine Bedeutung. Jedes Auftreten wird als Syntax-Fehler angesehen.

Ziffern und Buchstaben

0-9Die arabischen Ziffern 0 bis 9 werden hautpsächlich für fixe Werte verwendet, wie Integer-Zahlen oder Fliesskomma-Zahlen. Ziffern können jedoch auch als Teil eines benutzerdefinierten Namens auftreten, solange sie nicht an erster Stelle des Namens stehen. Somit ist es beispielsweise möglich, Variablen zu deklarieren mit Namen vec1, image5x5 oder m29513, nicht aber 99bottlesbeer.
a-z A-ZDie lateinischen Klein- und Grossbuchstaben werden hauptsächlich für Symbole verwendet, also beispielsweise für Variablennamen oder Funktionsnamen. Einige Buchstaben haben jedoch je nach Situation eine spezielle Bedeutung, welche weiter unten genauer aufgelistet ist.
KeywordsIn C und C++ sind einige Keywords spezifiziert, welche nicht als Symbole verwendet werden dürfen. Sie representieren eingebaute Namen, bestehend aus lateinischen Buchstaben. Sie haben eine festgelegte Bedeutung, welche auf der Keyword-Seite nachgelesen werden kann.
0Eine Null als erste Ziffer eines festen Wertes wird als Prefix einer Oktalzahl aufgefasst.
0x 0XEine Null gefolgt von einem kleinen oder grossen x wird als das Prefix einer Hexadezimalzahl aufgefasst.
0b 0BEine Null gefolgt von einem kleinen oder grossen b wird von einigen wenigen Compilern als das Prefix einer Binärzahl aufgefasst.
a-f A-FDie kleinen oder grossen Buchstaben a bis f werden bei Hexadezimalzahlen als die Werte 10 bis 15 aufgefasst.
bEin kleines b wird von einigen wenigen Compilern als das Suffix einer Binärzahl aufgefasst.
e EEin kleines oder grosses e wird als Einleitung des Exponenten einer Fliesskomma-Zahl aufgefasst.
f FEin kleines oder grosses f wird als das Suffix einer float-Fliesskommazahl aufgefasst.
hEin kleines h wird als das Suffix einer Hexadezimalzahl aufgefasst.
i I j JDer Autor ist sich nicht ganz sicher, vermutet aber: Ein kleines oder grosses i oder j wird als das Suffix einer imaginären Zahl aufgefasst.
l L ll LLEin kleines oder grosses l oder ll wird als das Suffix einer grossen Zahl aufgefasst. Ein l deklariert einen long-int-Typ oder einen long-double-Typ, ein ll deklariert einen long-long-Typ.
p PEin kleines oder grosses p wird als Einleitung des Zweierexponenten einer Hexadezimalen Fliesskomma-Zahl aufgefasst.
u UEin kleines oder grosses u wird als das Suffix einer positiven Ganzzahl (unsigned) aufgefasst.

Steuerzeichen

Folgende Zeichen sind nicht als eigentliche Zeichen aufzufassen, die auf dem Bildschirm sichtbar sind, sondern als codierte Anweisungen.

\0Das ASCII-Zeichen 0 wird mit Null bezeichnet und wird in C insbesondere für den Abschluss von Strings benötigt. Es wird implizit ans Ende von festen String-Werten angehängt. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \0 geschrieben werden.
\aDas ASCII-Zeichen 7 wird mit Alert bezeichnet. In früheren Jahren konnte man mittels Ausgabe dieses Zeichens einen Signalton erklingen lassen, weswegen das Zeichen manchmal auch Bell (Glocke) genannt wird. Heute hat das Zeichen keine besondere Bedeutung mehr. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \a geschrieben werden.
\bDas ASCII-Zeichen 8 wird mit Backspace bezeichnet und entspricht dem Drücken der Backspace-Taste, was besonders bei Tastatureingaben nützlich sein kann. Heute wird das Zeichen kaum mehr benutzt. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \b geschrieben werden.
\tDas ASCII-Zeichen 9 wird mit Tab bezeichnet und entspricht dem Drücken der Tabulator-Taste, was für String-Formatierung, aber auch bei Tastatureingaben nützlich sein kann. Das Auftreten des Tabulator-Zeichens im Programmtext wird als ein Whitespace aufgefasst. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \t geschrieben werden.
\nDas ASCII-Zeichen 10 (Hexadezimal 0x0a) wird mit Newline bezeichnet und entspricht (je nach System: Unix: \n Windows: \r\n Mac: \r) dem Drücken der Enter-Taste, was für String-Formatierung, aber auch bei Tastatureingaben nützlich sein kann. Das Auftreten des Newline-Zeichens im Programmtext wird als ein Whitespace aufgefasst. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \n geschrieben werden.
\vDas ASCII-Zeichen 11 (Hexadezimal 0x0b) wird mit Vertical feed bezeichnet und wurde in früheren Jahren zur Steuerung von Line-Devices (Beispielsweise Zeilen-Drucker) verwendet. Heute hat das Zeichen keine besondere Bedeutung mehr. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \v geschrieben werden.
\fDas ASCII-Zeichen 12 (Hexadezimal 0x0c) wird mit Form feed bezeichnet und wurde in früheren Jahren zur Steuerung von Line-Devices (Beispielsweise Zeilen-Drucker) verwendet. Heute hat das Zeichen keine besondere Bedeutung mehr. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \f geschrieben werden.
\rDas ASCII-Zeichen 13 (Hexadezimal 0x0d) wird mit Carriage return (Wagenrücklauf) bezeichnet und entspricht (je nach System: Unix: \n Windows: \r\n Mac: \r) dem Drücken der Enter-Taste, was für String-Formatierung, aber auch bei Tastatureingaben nützlich sein kann. Das Auftreten des Carriage-Return-Zeichens im Programmtext wird als ein Whitespace aufgefasst. Um das Zeichen in C als ASCII-Zeichen zu verwenden, muss es mittels der Escape-Sequenz \r geschrieben werden.