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:
- Implizite Typumwandlung (automatisch)
- 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) valueDa 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.
Aufgabe
EinfachSchreibe ein Programm, das:
- eine double-Variable
resultdeklariert und ihr den Wert 5.65 zuweist - eine int-Variable
gradedeklariert - den Wert von
resultmithilfe einer expliziten Typumwandlunggradezuweist - den Wert von
grademit 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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
2Variablen
DatentypenGanzzahlGleitkommazahl – DoubleZeichenBoolesche WerteKonstantenprintf-GrundlagenRegeln für die Benennung von VariablenTypumwandlung Teil 1Typumwandlung Teil 2Wiederholungsaufgabe3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenVergleichsoperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-ChallengeÜbe selbstständig: Online-C-Compiler