Operatoren in C
1) Zuweisung
Die Zuweisung eines Wertes geschieht mit =
Links davon steht die VARIABLE, die einen Wert erhält.
Die Variable auf der recehten Seite wird nicht verändert.
In C werden bei der Zuweisung von Kommazahlen an Ganzzahlen die Kommastellen abgeschnitten.
Beispiel:
int i; double x=3.75; i=x; // i ist dann 3 weil es abgeschnitten wird.
2) Vorzeichen
+ ist eine positive Zahl und - eine negative
3) Arithmetische Operatoren
+ - * / %
Bei der Division (/) mit int (Beide Operatoren sind Ganzzahlen) wird der Bruchteil (Kommastelle) abgeschnitten.
Beispiel:
int i=1, j=2, k; double x; k=i/j; // k ist somit 0 x=i/j; // x ist dann o.o
Modulo (%) Divisionen die nur auf Ganzzahlen anwendbar ist berechnet den Restwert einer Ganzzahlendivision. Wie man es aus der Grundschule kennt, bevor man mit den Kommzahlen vertraut gemacht wird.
Beispiel:
int i=10, j=2, k=3, erg; erg=i%k; // erg ist dann 1! weil 10 durch 3 gibt 3 rest 1 erg=j%k; // erg ist 2 erg=i%4; // erg ist 2
Auswertung der Rechnung erfolgt von LINKS nach Rechts, wie man es von der Mathematik kennt.
Dabei gilt: * / % geht vor + und -
Beispiel:
erg=i+j*k/5; // erg ist dann 11
Das Mischen von Datentypen ist erlaubt. Die Berechnung wird dann im "besseren" Datentyp ausgeführt.
Beispiel:
int i=1, j=2, k; double x=2.0, erg; erg=i/x; // 0.5 erg=i/j; // 0.0 Ganzhaldivision k=i/x; // 0 da k ein int ist
Erzwungene Typumwandlung (cast)
(Datentyp) Variable
erzwingt die Behandlung der Variable in diesem Typ an dieser Stelle!
Beispiel:
erg=(double) i/j; // 0.5 nur hier wird es double bahndelt

Hi,
müsste im zweiten Beispiel bei der Zuweisung des x nicht 0.5 (statt 0.0) rauskommen?
Hi, nein es kommt 0.0 raus, da es zwei Ganzzahlen sind. 0.0 kommt nur raus, weil das Ergebniss als Kommazahl ausgegben wird. Dies hat keinen Einfluss auf die Rechnung.
Wann gibt es mal neue Tuts?
Heutee