Menu
CoddyTech

Typumwandlung Teil 1

Teil des Abschnitts Grundlagen der C-Journey von Coddy. Lektion 13 von 63.

Mit Typumwandlungen kannst du in C einen Wert von einem Datentyp in einen anderen umwandeln. Das ist nützlich, wenn du Operationen mit unterschiedlichen Datentypen ausführen musst.

Es gibt zwei Hauptarten der Typumwandlung:

  1. Implizite Typumwandlung (automatisch)
  2. Explizite Typumwandlung (manuell)

Beginnen wir mit der impliziten Typumwandlung:

Implizite Typumwandlung erfolgt automatisch, zum Beispiel, wenn du einer Variable eines größeren Datentyps einen Wert eines kleineren Datentyps zuweist:

int num = 10;
double decimal_num;

// Implizite Typumwandlung von int zu double
decimal_num = num;

Nach der Ausführung des obigen Codes hat decimal_num den Wert 10.0

Diese Konvertierung ist sicher, weil ein double alle möglichen Werte eines int speichern kann, ohne Daten zu verlieren.

Häufige implizite Umwandlungspfade:

  • char → int → long → float → double

Beim Schritt von long zu float kann Präzision verloren gehen: Ein float kann nicht jeden long-Wert exakt speichern, daher wird 123456789 zu 123456792.0.

Schauen wir uns nun die explizite Typumwandlung an:

Eine explizite Typumwandlung erfolgt manuell, indem du den Zieldatentyp in Klammern vor den Wert schreibst, den du umwandeln möchtest. Verwende sie, wenn du von einem größeren zu einem kleineren Datentyp umwandelst, wobei Daten verloren gehen können:

double decimal_num = 5.65;
int num;

// Explizite Typumwandlung von double zu int
num = (int)decimal_num;

Nach der Ausführung des obigen Codes hat num den Wert 5.

Beachte, dass der Dezimalteil beim Casten von double zu int abgeschnitten (nicht gerundet) wird. Die Syntax für explizites Casten lautet:

(target_type) value

C würde diese Konvertierung auch ohne den Cast durchführen: num = decimal_num; ergibt dieselbe 5. Da bei der Konvertierung Daten verloren gehen können, macht das Schreiben des Casts dies sichtbar und zeigt dem Compiler, dass du dir des möglichen Datenverlusts bewusst bist.

challenge icon

Aufgabe

Einfach

Schreibe ein Programm, das:

  1. eine double-Variable result deklariert und ihr den Wert 5.65 zuweist
  2. eine int-Variable grade deklariert
  3. den Wert von result mithilfe einer expliziten Typumwandlung grade zuweist

Die Zeile unter deinem Code gibt grade mit der Meldung "The grade is: " aus.

Probier es selbst

    double result = 5.65;
    int grade;
    
    // Verwende einen expliziten Cast, um result (double) in grade (int) umzuwandeln
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-C-Compiler