Arbeiten mit for schleifen
-
int index; int *z, zahl[]= {1,2,3,4,5,6,7,8,9,0}; z = zahl; for (index = 0; index < 3; index++) { z = z + index; printf("%d %d ",*z, zahl[index]); }
Hey,
ich wollt einmal überprüfen ob meine Vermutungen richtig sind .
in der for schleife läuft index von 0-2 .
was geschieht denn darauf folgend?
kann mir die Ausgabe 1 1 2 2 4 3 nicht erklären.
Mit freundlichen Grüßen
Akay
-
Welche Ausgabe erwartest du?
Bedenke, das in Zeile 6 nicht
z = zahl + index;
steht.Du kannst ja noch den Offset ausgeben:
printf("[%d %d] ",z-zahl, index);
-
int index; char *z, text[] = "Aufgabe2"; z = (text)+1; for (index = 0; index < 3; index++) { z = z + 2; printf("%c",*z); }
hier wird gb2 geprinted
das g ergibt sich doch daraus dass in z erst gesagt wird text+1 und anschließend z+2 was dann ja auf die Stelle 3 im Array zeigt -> g den Rest kann ich mir nicht erklären
-
also beim 1. beispiel zählst du immer index hinzu, also erst 0, dann 1, dann 2, sodass z dann nachher zahl + 3, index wird jedoch noch immer um 1 erhöht, sodass es nachher 2 ist.
und beim 2. beispiel zeigt z erst auf (text +1), dann auf t(text+3) und dann auf (text+5). also alles korrekt.