Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Implizite Typumwandlung | Andere Datentypen und Konzepte
C++ Datentypen
course content

Kursinhalt

C++ Datentypen

C++ Datentypen

1. Einführung
2. Numerische Datentypen
3. Textdatentyp
4. Andere Datentypen und Konzepte

book
Implizite Typumwandlung

In C++ erfolgt die Typumwandlung ständig.
Es kann entweder eine implizite Umwandlung sein, die automatisch vom Compiler durchgeführt wird, oder eine explizite Umwandlung, bei der Sie die Typen explizit im Code umwandeln. Dieses Kapitel konzentriert sich auf die implizite Umwandlung.

Hier ist ein einfaches Beispiel, bei dem eine implizite Typumwandlung auftritt:

cpp

main

copy
1234567
#include <iostream> int main() { int num = 6.5; std::cout << num << std::endl; }

Im Beispiel wird 6.5, eine Gleitkommazahl, implizit in int umgewandelt (was durch Entfernen des Dezimalteils erfolgt).

Eine implizite Typumwandlung erfolgt, wenn der Typ einer Variablen nicht mit dem Typ übereinstimmt, den der Compiler erwartet (z. B. wenn wir einem int einen Wert zuweisen, erwartet der Compiler eine ganze Zahl und führt eine Typumwandlung durch, wenn er etwas anderes erhält).

  • Rote Pfeile stehen für Datenverlust. Zum Beispiel, wenn wir float in long (oder int) umwandeln, verlieren wir den Dezimalteil;
  • Grüne Pfeile stehen für keinen Datenverlust. Zum Beispiel können wir int sicher in long umwandeln, und das Ergebnis ist dasselbe;
  • Gelber Pfeil bei der Umwandlung von long (oder int) in float (oder long) bedeutet, dass wir manchmal einen Datenverlust aufgrund unzureichender Genauigkeit von float (oder long) erleiden.
cpp

main

copy
1234567891011
#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }

Ein weiteres Beispiel für implizite Typumwandlung in C++ sind die +, -, *, / Operationen. Sie sollten auf Variablen mit demselben Datentyp durchgeführt werden. Ist dies nicht der Fall, führt C++ die Typförderung implizit durch. Zum Beispiel, int / double -> double / double.

Ein weiteres Beispiel, bei dem Sie die implizite Typumwandlung antreffen können, sind Bedingungen. Zum Beispiel die if-Anweisung.

Sie erwartet, dass die Bedingung vom Typ bool ist. Aber dank der impliziten Typumwandlung können wir andere Datentypen als Bedingungen übergeben. Hier ist ein Bild, das zeigt, wie sie in bool umgewandelt werden:

Hinweis

Leerer String und leere Liste werden ebenfalls als true konvertiert.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt