Warum ist int* pi = char *pc möglich?
-
Hallo,
mir ist folgendes nicht klar:
int *pi; char *pc; // warum ist folgendes erlaubt? und warum? ??? *pi = *pc;evtl. weil jeder character ein int ist?
-
Ein char ist zwar kein int, aber sehr wohl nach int konvertierbar.
Wäre ja auch schlecht, wenn das nicht möglich wäre, oder?
Ein char dient nicht (nur) dazu, Zeichen zu speichern, sondern ist ein normaler Ganzzahltyp wie int, nur eben nicht so breit.
-
hmm...danke...aber deine antwort verwirrt mich etwas....was meinst du mit "Wäre ja auch schlecht...." ?
-
Manchmal benutzt man kleinere Typen wie char um Platz zu sparen.
An anderer Stelle benötigt man den Wert dann aber mit Sicherheit wieder als int, deswegen wäre es schlecht, wenn eine char -> int - Konvertierung nicht möglich wäre.
-
Kompilier doch mal den Code und schau welche Ergebnise dich erwarten

#include <iostream> int main() { char buchstabe_1 = 107; char buchstabe_2 = 'k'; int zahl_1 = 'k'; int zahl_2 = 107; std::cout << buchstabe_1 << ", " << zahl_1 << std::endl; std::cout << (int)(buchstabe_2) << ", " << (char)(zahl_2); }
-
ah danke. mir ist jetzt alles klar
