linux.txt/programmieren/c/operatoren_und_ausdruecke.tex
2025-02-15 15:39:11 +01:00

109 lines
5.4 KiB
TeX

% 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}