% 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<b
<=              kleiner oder gleich             >       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<<n
>>              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<y ? 6 : k+1 ;             x kleiner y dann 6 sonst k+1
,               Aufzählungsoperator             >       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}