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

Typumwandlung passiert die ganze Zeit. 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.

cpp

main

copy
1234567
#include <iostream> int main() { int num = 6.5; // Implicit type conversion 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) haben.

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 Typkonvertierung sind die +, -, *, / Operationen. Sie sollten auf Variablen mit demselben Datentyp durchgeführt werden. Ist dies nicht der Fall, führt C++ implizit die Typförderung durch. Zum Beispiel, int / double -> double / double.

Ein weiteres Beispiel, bei dem Sie auf die implizite Typkonvertierung stoßen können, sind Bedingungen. Zum Beispiel die if-Anweisung.

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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

C++ Datentypen

C++ Datentypen

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

book
Implizite Typumwandlung

Typumwandlung passiert die ganze Zeit. 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.

cpp

main

copy
1234567
#include <iostream> int main() { int num = 6.5; // Implicit type conversion 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) haben.

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 Typkonvertierung sind die +, -, *, / Operationen. Sie sollten auf Variablen mit demselben Datentyp durchgeführt werden. Ist dies nicht der Fall, führt C++ implizit die Typförderung durch. Zum Beispiel, int / double -> double / double.

Ein weiteres Beispiel, bei dem Sie auf die implizite Typkonvertierung stoßen können, sind Bedingungen. Zum Beispiel die if-Anweisung.

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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt