Was bedeutet (int) oder (char), (Damit ist gemeint, was dieser Ausdruck in Klammern bedeutet)?

3 Antworten

Dadurch werden die jeweiligen Variablen "gecasted". Heißt ganz grob gesagt, dass eine Variable vom Typ X in den Typ Y umgewandelt wird. Ganz plumpes Beispiel:

int n = 5;
char m = n; // geht ggf. je nach Programmiersprache und ihrer Typenstriktheit nicht, da zwei unterschiedliche Typen
char m = (char)n; // m ist nun eine Variable vom Typen char mit dem Wert der Variable n
Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung
Student4211 
Fragesteller
 23.01.2020, 15:17

Vielen Dank, das war sehr hilfreich :)

0

Dabei handelt es sich um einen "expliziten Typecast".

Dadurch wird der nachfolgende Wert in einen Wert des entsprechenden Typs umgewandelt (sofern möglich).

Das Beispiel mit char und int ist aber so, wie du es vorliegen hast etwas unglücklich gewählt, sofern es um C oder eine vergleichbare Sprache geht, da es dor auch einen "impliziten Typecast" für int zu char und umgekehrt gibt.

Der einzige Unterschied liegt in diesem Fall darin, dass sizeof(char) per Definition 1 und sizeof(int) üblicherweise 4 ist.

Hier mal ein etwas "praktischeres Beispiel:

typedef struct{
    int a;
} foo;

typedef struct{
    char a,b,c,d;
} bar;

foo baz;
baz.a = 1094861636;

/*Der Reihe nach auseinanderklamüsert:
1. Einen Pointer des Typs foo*, der auf den Inhalt von baz zeigt nehmen.
2. Diesen Pointer explizit in einen Pointer des Typs bar* casten.
3. Den gecasteten Pointer derefernzieren und das Ergebnis einer Variable des Typs bar zuweisen.
*/
bar fizz = *((bar*)&baz);

/*Die Ausgabe ist abhängig davon, ob das Programm auf einem Little- oder Big-Endian-System läuft.
Little-Endian: DCBA
Big-Endian: ABCD
*/
printf("%c%c%c%c\n", fizz.a, fizz.b, fizz.c, fizz.d);

in vba:

ist ein Integer ein zahl welche einen bereich von -32.768 bis 32.767 abdeckt sollte eine zahl größer sein sollte man long verwenden.

z.B. der Char(65) ist ein A

siehe dazu die ascii tabelle.

Lg

Woher ich das weiß:Studium / Ausbildung – Abgeschlossene Ausbildung