Menu
Coddy logo textTech

Type Casting Teil 1

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

Typumwandlung in C ermöglicht es Ihnen, einen Wert von einem Datentyp in einen anderen zu konvertieren. Dies ist nützlich, wenn Sie Operationen zwischen verschiedenen Datentypen durchführen müssen.

Es gibt zwei Hauptarten der Typumwandlung:

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

Beginnen wir mit implizitem Casting:

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

int num = 10;
double decimal_num;

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

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

Dies 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 Typumwandlungspfade:

  • char → int → long → float → double

Schauen wir uns nun das explizite Casting an:

Explizites Casting erfolgt manuell, indem der Zieldatentyp in Klammern vor den zu konvertierenden Wert gesetzt wird. 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 Ausführung des obigen Codes wird num den Wert 5 haben

Beachten Sie, dass der Dezimalteil beim Umwandeln (Casting) von double in int abgeschnitten (nicht gerundet) wird. Die Syntax für explizites Casting lautet:

(target_type) value

Da diese Konvertierung zu Datenverlust führen kann, verlangt C, dass Sie dies explizit tun – dies teilt dem Compiler mit, dass Sie sich des potenziellen Datenverlusts bewusst sind.

challenge icon

Aufgabe

Einfach

Schreiben Sie ein Programm, das:

  1. Eine double-Variable result deklariert und sie auf 5.65 setzt
  2. Eine int-Variable grade deklariert
  3. Den Wert von result der Variablen grade mittels explizitem Casting zuweist
  4. Den Wert von grade mit der Nachricht "The grade is: " unter Verwendung von printf ausgibt

Spickzettel

Implizite Typumwandlung — automatische Konvertierung von einem kleineren in einen größeren Typ:

int num = 10;
double decimal_num = num; // wird zu 10.0

Häufiger Pfad der impliziten Typumwandlung: char → int → long → float → double

Explizite Typumwandlung — manuelle Konvertierung mittels (target_type) value:

double decimal_num = 5.65;
int num = (int)decimal_num; // wird zu 5 (abgeschnitten, nicht gerundet)

Verwenden Sie explizite Typumwandlung bei der Konvertierung von einem größeren in einen kleineren Typ, da hierbei Datenverlust auftreten kann.

Probier es selbst

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Explizites Casting verwenden, 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 Fundamentals