Gast
#2043553
Hallo! Ich habe folgende (für euch sicher einfache) Frage:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
|
Anzeige
|
Änderung des Datentyps z.B. (long) test
Gast
#2043553
Hallo! Ich habe folgende (für euch sicher einfache) Frage:
Question schrieb: > oder ist es nur für die Ausgabe long Ja. > und springt danach wieder auf char zurück? Er springt nicht zurück, weil er nie hingesprungen ist, sondern er wird nur für diese eine Stelle anders interpretiert. Die Variable test an sich ist und bleibt ein char.
Gast
#2043574
Ich glaube es bleibt Char aber könntest du evtl. mit der sizeof(variable) Funktion prüfen.
Gast
#2043579
Lothar Miller schrieb: > Question schrieb: >> oder ist es nur für die Ausgabe long > Ja. >> und springt danach wieder auf char zurück? > Er springt nicht zurück, weil er nie hingesprungen ist, > sondern er wird nur für diese eine Stelle anders interpretiert. Danke für die superschnelle Rückmeldung. Das heißt also:
Question schrieb: > printf("Test: %u\n"),(long)test; Das ist kaputt. > printf("Test: %u\n", (long) test); So sollte es aussehen. Wobei %u nicht der richtige Formatstring für long ist. %u steht für unsigned int.
Gast
#2043599
Rufus Τ. Firefly schrieb: > Question schrieb: >> printf("Test: %u\n"),(long)test; > > Das ist kaputt. > >> printf("Test: %u\n", (long) test); > > So sollte es aussehen. > > Wobei %u nicht der richtige Formatstring für long ist. %u steht für > unsigned int. Stimmt. Da hast du natürlich recht. Richtig wäre: %li
Gast
#2043613
Genau. Diese long in Klammern nennt sich "cast". Schau mal in ein C-Buch. Es ändert den Typ nur sozusagen punktuell. Nimm sowas wie:
dann wird nur an der Stelle wo (int) steht das i als int betrachtet aber nicht da wo i alleine steht oder sonstwo. Man könnte das umkehren und fragen, warum sollte an einer Stelle wo kein cast steht der Datentyp geändert werden? Man geht einfach davon aus, das es so ist, was auch konsistent ist, denn sonst müsste es einen Operator geben, der diese Umwandlung wieder rückgängig macht. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|