C-Programmierung

Umwandlungen

Operator Priorität | | Anweisungen

Implizite Umwandlung

Ein Operator wie z.B. der Additionsoperator arbeitet normalerweise mit zwei Operanden gleichen Typs. Bei ungleichem Typ wird der Operand mit der geringeren Darstellungsgenauigkeit in den Datentyp mit der höheren Genauigkeit umgewandelt.

Als Ausnahme von der Regel werden die char und short Typen immer zu int umgewandelt. Berechnungen erfolgen also immer mit mindestens der Genauigkeit des int Typs.

Die Darstellungsgenauigkeit der Datentypen ist wie folgt (aufsteigend):

long double
double
float
unsigned long long int
long long int
unsigned long int
long int
unsigned int
int ← char short

Eine implizite Umwandlung erfolgt also in Form von aufsteigenden Einzelschritten in obiger Tabelle.

Beispiel: 1+0.5 → 1.0+0.5

Explizite Umwandlung (Cast)

Wird ein Datentyp in Klammern vor einem Operanden angegeben, so wird der Operand in den angegebenen Typ umgewandelt. Es erfolgen dieselben Umwandlungsregeln, wie bei der impliziten Umwandlung.

Beispiel 1: (float)1/2 → 1.0f/2
Beispiel 2: double a=1,b=2; (double)a/b → 1.0/2
Beispiel 3: double x=5.1; (int)x → 5

Operator Priorität | | Anweisungen

Options: