C-Programmierung: Typumwandlung

Aus Wikibooks

Wechseln zu: Navigation, Suche

Der Typ eines Wertes kann sich aus verschiedenen Gründen ändern müssen. Beispielsweise, weil man unter Berücksichtigung höherer Genauigkeit weiter rechnen möchte, oder weil man den Nachkomma-Teil eines Wertes nicht mehr benötigt. In solchen Fällen verwendet man Typumwandlung (auch als Typkonvertierung bezeichnet).

Man unterscheidet dabei grundsätzlich zwischen expliziter und impliziter Typumwandlung. Explizite Typumwandlung nennt man auch Cast.

Eine Typumwandlung kann einschränkend oder erweiternd sein.

Inhaltsverzeichnis

[Bearbeiten] Implizite Typumwandlung

Bei der impliziten Typumwandlung wird Umwandlung nicht im Code aufgeführt. Sie wird vom Compiler automatisch anhand der Datentypen von Variablen bzw. Ausdrücken erkannt und durchgeführt. Beispiel:

int i = 5;
float f = i; // implizite Typumwandlung

[Bearbeiten] Explizite Typumwandlung

Anders als bei der impliziten Typumwandlung wird die explizite Typumwandlung im Code angegeben. Es gilt folgende Syntax:

(Typ)Ausdruck

oder

Typ(Ausdruck)

Wobei Typ der Datentyp ist, zu dem Ausdruck konvertiert werden soll. Beispiel:

float pi = 3.14159;
int i = (int)pi;
// i = 3

[Bearbeiten] Einschränkende Typumwandlung

Bei der einschränkenden Typumwandlung verliert ein Wert einen Teil seiner Genauigkeit bzw. seiner Informationen. Dabei sollte ausschließlich explizite Typumwandlung verwendet werden.

[Bearbeiten] Erweiternde Typumwandlung

Bei der erweiternden Typumwandlung erhält der Wert keine zusätzlichen Informationen, es bleibt jedoch auf Grund der Größe des Ziel-Datentyps Platz für diese. Für erweiternde Typumwandlung kann implizite Typumwandlung verwendet werden.

<< Komplexe Datentypen | Inhaltsverzeichnis | Speicherverwaltung >>

Persönliche Werkzeuge