Menu
Coddy logo textTech

Typumwandlung Teil 1

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

Typumwandlung in C ermöglicht es dir, einen Wert von einem Datentyp in einen anderen umzuwandeln. Das ist nützlich, wenn du Operationen zwischen verschiedenen Datentypen durchführen musst.

Es gibt zwei Hauptarten der Typumwandlung:

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

Beginnen wir mit der impliziten Typumwandlung:

Implizite Typumwandlung geschieht automatisch, wenn von einem kleineren Datentyp in einen größeren umgewandelt wird:

int num = 10;
double decimal_num;

// Implizites Casting von int zu double
decimal_num = num;

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

Das funktioniert, weil ein double alle möglichen Werte eines int speichern kann, ohne Daten zu verlieren. Die Konvertierung ist sicher, daher führt C sie automatisch durch.

Häufige implizite Konvertierungspfade:

  • char → int → long → float → double

Sehen wir uns nun das explizite Umwandeln an:

Explizites Casting wird manuell durchgeführt, indem der Zieldatentyp in Klammern vor dem Wert platziert wird, den du konvertieren möchtest. Dies ist erforderlich, wenn von einem größeren Datentyp in einen kleineren konvertiert wird, wobei Datenverlust auftreten kann:

double decimal_num = 5.65;
int num;

// Explizites Casting 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

Da bei dieser Konvertierung Daten verloren gehen können, verlangt C, dass du sie explizit durchführst. Dadurch weiß der Compiler, dass dir der mögliche Datenverlust bewusst ist.

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
  4. den Wert von grade mit der Nachricht "The grade is: " mithilfe von printf ausgibt

Probier es selbst

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Verwende explizites Casting, um result (double) in grade (int) umzuwandeln
    
    printf("The grade is: %d\n", grade);
    
    return 0;
}
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