Ausdrücke (C++)
Nach oben zu Ausdrücke - Index
Ein Ausdruck ist eine Folge von Operatoren, Operanden und Interpunktionszeichen, die eine Berechnung definiert. Die formale Syntax, die unter "C++Builder-Ausdrücke" aufgelistet ist, zeigt an, dass die Ausdrücke rekursiv definiert werden: Unterausdrücke können ohne formale Beschränkung geschachtelt werden. (Allerdings meldet der Compiler den Fehler "Zu wenig Arbeitsspeicher", wenn er einen zu komplexen Ausdruck compilieren soll.)
Hinweis: Wie Bezeichner und Operatoren zu grammatikalisch korrekten Ausdrücken kombiniert werden können, finden Sie unter "C++Builder-Ausdrücke".
Ausdrücke werden auf der Basis bestimmter Regeln für die Umwandlung, Gruppierung, Zugehörigkeit und Vorrangigkeit ausgewertet, die von den verwendeten Operatoren, der Anwesenheit von Klammern und den Datentypen der Operanden abhängen. Die Standardumwandlung wird ausführlich im Abschnitt "Verfahren für arithmetische Standardumwandlungen" beschrieben. Die Reihenfolge, in der Sie Operanden und Unterausdrücke anordnen, muss nicht notwendigerweise die Reihenfolge sein, in der der Compiler Ihre Ausdrücke auswertet (siehe Auswertungsreihenfolge).
Ausdrücke können einen L-Wert, einen R-Wert oder keinen Wert ergeben. Ausdrücke können zu Nebeneffekten führen, gleichgültig, ob sie einen Wert ergeben oder nicht.
Eine Zusammenfassung der Rangfolge und Abarbeitungsreihenfolge finden Sie im Thema "Abarbeitungsreihenfolge und Rangfolge der C++Builder-Operatoren". Die Grammatik in C++Builder-Ausdrücken definiert die Abarbeitungsreihenfolge und Rangfolge der Operatoren vollständig.
C++Builder-Ausdrücke
Primärer Ausdruck: Literal this (C++ spezifisch) :: Bezeichner (C++ spezifisch) :: Operator-Funktionsname (C++ spezifisch) :: Qualifizierter Name (C++ spezifisch) (Ausdruck) Name Literal: Integerkonstante Zeichenkonstante Gleitkomma-Konstante String-Literal Name: Bezeichner Operator-Funktionsname (C++ spezifisch) Umwandlungs-Funktionsname (C++ spezifisch) ~ Klassenname (C++ spezifisch) Qualifizierter Name (C++ spezifisch) Qualifizierter Name: (C++ spezifisch) Qualifizierter Klassenname :: Name Suffix-Ausdruck: Primärer-Ausdruck Suffix-Ausdruck [ Ausdruck ] Suffix-Ausdruck (<Ausdrucksliste>) Einfacher-Typname (<Ausdrucksliste>) (C++ spezifisch) Suffix-Ausdruck . Name Suffix-Ausdruck -> Name Suffix-Ausdruck ++ Suffix-Ausdruck -- const_cast < Typ-ID > ( Ausdruck ) (C++ spezifisch) dynamic_cast < Typ-ID > ( Ausdruck ) (C++ spezifisch) reinterpret_cast < Typ-ID > ( Ausdruck ) (C++ spezifisch) static_cast < Typ-ID > ( Ausdruck ) (C++ spezifisch) typeid ( Ausdruck ) (C++ spezifisch) typeid ( Typname ) (C++ spezifisch) Ausdrucksliste: Zuweisungs-Ausdruck Ausdrucksliste , Zuweisungs-Ausdruck Unärer Ausdruck: Suffix-Ausdruck ++ unärer Ausdruck - - unärer Ausdruck unärer Operator cast-Ausdruck sizeof unärer Ausdruck sizeof ( Typname ) Speicherreservierungs-Ausdruck (C++ spezifisch) Speicherfreigabe-Ausdruck (C++ spezifisch) Unärer Operator: einer von & * + - ! Zuweisungs-Ausdruck: (C++ spezifisch) <::> new <Platzierung> neuer Typname <Initialisierer> <::> new <Platzierung> (Typname) <Initialisierer> Platzierung: C++ spezifisch) ( Ausdrucksliste ) neuer Typname: (C++ spezifisch) Typ-Bezeichner <neuer Deklarator> neuer Deklarator: (C++ spezifisch) ptr-Operator <neuer Deklarator> neuer Deklarator [ <Ausdruck> ] Zuweisungsaufhebungs-Ausdruck: (C++ spezifisch) <::> delete cast-Ausdruck <::> delete [] cast-Ausdruck cast-Ausdruck: unärer Ausdruck ( Typname ) cast-Ausdruck pm-Ausdruck: cast-Ausdruck pm-Ausdruck .* cast-Ausdruck (C++ spezifisch) pm-Ausdruck ->* cast-Ausdruck (C++ spezifisch) Multiplikativer Ausdruck: pm-Ausdruck Multiplikativer Ausdruck * pm-Ausdruck Multiplikativer Ausdruck / pm-Ausdruck Multiplikativer Ausdruck % pm-Ausdruck Additiver Ausdruck: Multiplikativer Ausdruck Additiver Ausdruck + Multiplikativer Ausdruck Additiver Ausdruck - Multiplikativer Ausdruck shift-Ausdruck: Additiver Ausdruck shift-Ausdruck << Additiver Ausdruck shift-Ausdruck >> Additiver Ausdruck Relationaler Ausdruck: shift-Ausdruck Relationaler Ausdruck < shift-Ausdruck Relationaler Ausdruck > shift-Ausdruck Relationaler Ausdruck <= shift-Ausdruck Relationaler Ausdruck >= shift-Ausdrucksgleichheit-Ausdruck Relationaler-Ausdruck Gleichheits-Ausdruck == Relationaler Ausdruck Gleichheits-Ausdruck != Relationaler Ausdruck AND-Ausdruck: Gleichheits-Ausdruck AND-Ausdruck & Gleichheits-Ausdruck Exklusiv-OR-Ausdruck: AND-Ausdruck Exklusiv-OR-Ausdruck ^ AND-Ausdruck Inklusiv-OR-Ausdruck: Exklusiv-OR-Ausdruck Inklusiv-OR-Ausdruck | Exklusiv-OR-Ausdruck Logischer AND-Ausdruck: Inklusiv-OR-Ausdruck logischer AND-Ausdruck && Inklusiv-OR-Ausdruck Logischer OR-Ausdruck: logischer AND-Ausdruck logischer OR-Ausdruck || logischer AND-Ausdruck Bedingter Ausdruck: logischer OR-Ausdruck logischer OR-Ausdruck ? Ausdruck : Bedingter Ausdruck Zuweisungs-Ausdruck: Bedingter Ausdruck unärer Ausdruck Zuweisungs-Operator Zuweisungs-Ausdruck Zuweisungs-Operator: jeweils aus der Menge =, *=, /=, %=, +=, -= <<, =>, >=, &=, ^=, |= Ausdruck: Zuweisungs-Ausdruck Ausdruck , Zuweisungs-Ausdruck Konstantenausdruck: Bedingter Ausdruck