Aufgaben
Aufgabe 1 – Deklarationen:
Was wird hier deklariert?
Bsp:
string *(array[])
Lsg: Es handelt sich hier um ein Array von Pointern auf strings
-
int array[]
-
int* array[]
-
int (*array)[]
-
int* (*array)[]
-
int* (*array)[][]
Aufgabe 2 – Zuweisungen:
Hier ist ein kleiner Code-Block gegeben und du musst entscheiden, ob die mit Zahlen versehenen Zeilen richtig oder falsch sind.
#includestruct bruch { int zaehler; int nenner; }; int main(int argc, char *argv[]) { struct bruch a = {1,2}; struct bruch b = {5,7}; struct bruch *x; x = &b; (1) a.zaehler = 1; (2) (&a)->nenner = 2; (3) x.zaehler = 5; (4) (&x).nenner = 7; return 0; }
Lösungen:
Aufgabe 1 – Deklarationen:
- Ein Array von ints
- Ein Array von int-Pointern
- Ein Pointer auf ein Array von ints
- Ein Pointer auf ein Array von int-Pointer
- Ein Pointer auf ein Array von Pointern auf ein Array von int-Pointer
Aufgabe 2 – Zuweisungen:
- korrekt
- korrekt
- falsch, x->zaehler wäre richtig
- falsch, (*x).nenner wäre richtig
Merke: Wenn die Variable ein Pointer ist, dann kann auf die Attribute mit var->attribut zugegriffen werden. Wenn es kein Pointer ist, dann kann mit var.attribut auf die Attribute zugegriffen werden.