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:
- Implizite Typumwandlung (automatisch)
- 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) valueDa 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.
Aufgabe
EinfachSchreiben Sie ein Programm, das:
- Eine double-Variable
resultdeklariert und sie auf 5.65 setzt - Eine int-Variable
gradedeklariert - Den Wert von
resultder Variablengrademittels explizitem Casting zuweist - Den Wert von
grademit 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.0Hä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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
2Variablen
DatentypenIntegerFloat - DoubleZeichenBooleansKonstantenprintf GrundlagenBenennungsregeln für VariablenType Casting Teil 1Type Casting Teil 2Wiederholungs-Challenge3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenRelationale OperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-Challenge