% master: operatoren_und_ausdruecke.tex % Operatoren und Ausdrücke v0.2 % 2011-05-27 (Rx) \section{Operatoren und Ausdrücke} %---------------------------------- \subsection{Arithmetische Operatoren:} %------------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- + Addition > 5 a+b - Subtraktion > 5 a-b * Multiplikation > 4 a*b / Division > 4 a/b % Modulo > 4 a%b \end{verbatim} \subsection{Vergleichsoperatoren:} %--------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- < kleiner als > 7 a 7 a<=b > größer > 7 a>b >= größer oder gleich > 7 a>=b == gleich > 8 a==b != ungleich > 8 a!=b \end{verbatim} \subsection{Logische Operatoren:} %-------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- & bitweises AND > 9 a&b | bitweises OR > 11 a|b ^ bitweises XOR > 10 a^b << bitweises Linksschieben > 6 a<> bitweises Rechtsschieben > 6 a>>n ~ Einerkomplement < 2 ~a && logisches AND > 12 a&&b || logisches OR > 13 a||b ! logische Negation < 2 !a \end{verbatim} \subsection{Zuweisungsoperatoren:} %--------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- = Zuweisung < 15 a=b += Zuweisung nach Addition < 15 a+=b -= Zuweisung nach Subtraktion < 15 a-=b *= Zuweisung nach Multiplikation < 15 a*=b /= Zuweisung nach Division < 15 a/=b %= Zuweisung nach Modulo < 15 a%=b <<= Zuweisung nach bitweisem < 15 a<<=b Linksschieben >>= Zuweisung nach bitweisem < 15 a>>=b Rechtsschieben &= Zuweisung nach bitweisem AND < 15 a&=b |= Zuweisung nach bitweisem OR < 15 a|=b ^= Zuweisung nach bitweisem XOR < 15 a^=b \end{verbatim} \subsection{Post- und Prefix- Operatoren:} %----------------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- ++ Inkrement > < 1 2 a++ ++a -- Dekrement > < 1 2 a-- --a () Funktionsaufruf > 1 sqrt(a) [] Arrayelement > 1 feld[a] . Feld einer structur oder union > 1 tag.dat -> Zeiger auf structur > 1 zeig->ele ( type ) expl. Typenumwandlung < 2 double(a) \end{verbatim} \subsection{Zeigeroperatoren:} %----------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- & Adresse von < 2 &a * Indirektion < 2 *a .* Dereferenzzeiger > 3 tag.*dat ->* Dereferenzzeiger > 3 tag->dat \end{verbatim} \subsection{Diverse Kategorien:} %------------------------------- \begin{verbatim} Operator Bedeutung Assoziativität Rang Beispiel -------- --------- -------------- ---- -------- ?: Bedinung < 14 a?b:c i = x 16 a,b, ... - unäres Minus < 2 -n + unäres Plus < 2 +n sizeof(typ) Größe des Types in Byte < 2 sizeof(a) new dynam. Objekt erzeugen < 2 b = new float[a] delete dynam. Objekt löschen < 2 delete b :: Zugiffs-/Bereichsoperator < 2 adr::nam \end{verbatim}