Typumwandlung Flashcards
Was ist Typecasting?
Den Datentyp von einer Variable in einen anderen Umwandeln
Welche Arten von Typecasting gibt es?
- implizites Typecasting
- explizites Typecasting
Was ist implizites Typecasting?
Der Compiler wandelt den Datentyp einer Variable automatisch um.
Wann findet implizites Typecasting statt?
- Wenn man in Ausdrücken unterschiedliche Datentypen miteinander über Operatoren verknüpft.
- Wenn man eine Operation mit einem Ganzzahltyp kleiner als dem int ausführt
- Wenn an eine Operation mit einem Gleitpunkttyp kleiner als dem double ausführt
- Bei einer Zuweisung mit zwei unterschiedlichen Datentypen
Warum findet ein implizites Typecasting statt wenn man eine Operation mit einem kleineren Ganzzahldatentypen als dem Integer ausführt?
Weil in C mit nichts kleinerem als einem Integer gerechnet wird. Daher werden char und short in eine Integer convertiert bevor mit ihnen gerechnet wird.
Warum findet ein eimplizites Typecasting statt wenn man eine Operation mit einem kleinen Gleitpunkttypen als dem double ausführt?
Weil in C mit nichts kleinerem als einem double rechnet wird. Daher wird der float in eine double convertiert bevor mit ihm gerechnet wird.
Bei einer Operation mit zwei unterschiedlichen Datentypen, wie sieht das implizite Typecasting aus?
Der niedrigere Datentyp wird in den höheren Datentypen umgewandelt.
Wie sieht das Typecasting bei einer Zuweisung aus?
der Datentyp der rechts vom ‘=’ steht wird in den Datentypen links vom ‘=’ umgewandelt.
Bei weilcher Art von Typecasting kann es zu fehlern kommen?
Wenn man einen höherwerigen Datentyp in einen niedrigeren Datentypen umwandelt.
Zu was für einem Fehler kann es bei einem Typecasting von einem höherwertigen Datentypen zu einem niedrigeren Datentypen kommen?
Zu einem Informationsverlust.
Was ist das explizite Typecasting?
Typecasting welches zum Programmierer erzwungen wird.
Wie sieht der Casting Operator aus?
(Datentype) Variable
Wie kann ich die Variable var in den Datentyp ‘data’ umwandeln?
(data) var
Nach folgendem Codeausschnitt. Welchen Datentype hat die Variable a am ende?
~~~
int a = n;
float z = (float) a / m;
~~~
a ist vom typ int.