Wenn ein Ausdruck von einem Datentyp in einen anderen umgewandelt wird, dann nennt man das type-casting.
Dabei spielt vor allem die Kompatibilität von Datentypen eine Rolle, denn nicht immer kann umgewandelt werden(zum Beispiel bei zwei verschiedenen Klassen).
Dabei wird zwischen der Implicit conversion und der Explicit conversion unterschieden.
Die implizite Konversion wird automatisch durchgeführt, wenn ein Wert von einem anderen Datentyp, einem kompatiblen Datentyp zugewiesen wird.
int main()
{
float a = 2.5;
int b;
b = a;
std::cout << b << std::endl;
return 0;
};
2
Obwohl a eine Fließkommezahl ist, wird float zu int umgewandelt und die Konsole gibt 2 aus. Das funktioniert auch in die andere Richtung.
int main()
{
char buchstabe = 'E';
int zahl;
zahl = buchstabe;
std::cout << zahl << std::endl;
return 0;
};
69
Nice. Du siehst, auch der char wird in ein int umgewandelt. In der ASCII – Tabelle entspricht nämlich der Großbuchstabe E der Zahl 69. (Siehe ASCII -Tabelle). Man kann auch ein int in ein char umwandeln.
In den Beispielen mussten wir nichts weiter tun, damit der Datentyp umgewandelt wird. Aber wir könnten auch explizit die Typumwandlung durchführen, indem wir den Datentyp in Klammern vor den Bezeichnernamen setzen:
int main()
{
int a = 2;
int b = 4;
float ergebnis = a / b;
std::cout << ergebnis << std::endl;
return 0;
};
0
Es wird 0 in der Konsole ausgegeben. Syntaktisch ist das nicht falsch, doch wir erhalten nicht das gewünschte Ergebnis.
int main()
{
int a = 2;
int b = 4;
float ergebnis = (float ) a / (float) b; //
float gehtAuch = float (a) / float (b);
std::cout << ergebnis << std::endl;
std::cout << gehtAuch << std::endl;
return 0;
};
0.5
0.5
Was wir machen müssen, ist eine explizite Typumwandlung durchzuführen. Das können wir einmal machen indem wir den Datentypen in Klammern vor den Bezeichnernamen setzen, oder indem wir den Datentypen ohne Klammern schreiben und den Bezeichner in Klammern setzen. Beides ist möglich.
Falls du mehr zu Themen der Informatik lesen willst, kannst du die Suche dafür verwenden:
Du bist der Meinung, das war der Beste Beitrag zum Thema Informatik den du jemals gelesen hast? Dann ist die einzig logische Schlussfolgerung, diesen Beitrag mit deinen Kommilitonen zu teilen. Oder auch nicht mach was du willst, ich bin nicht dein Dad.