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.


Anmelden zum Antworten