Postinkrement-Operator vs. Präinkrement-Operator

cropfaktor

cropfaktor

Aktives Mitglied
Thread Starter
Dabei seit
18.01.2008
Beiträge
1.148
Reaktionspunkte
119
Hallo in die Runde,

diese Wochen sind mal wieder Grundlagen dran und mein Lehrbuch verhaspelt sich und ich kapiere es auch nicht.

Dieses "Präinkrement-Operator"-Beispiel ist mir vollkommen einsichtig:
Code:
    //Verkürzte while-Schleife durch den Inkrement-Operator
    int counter3 = 0;
    //Variante Präfix-Notation
    while (++counter3 < 10) {
        printf("Wert der Variablen3: %d \n", counter3);
    }
In der Konsole werden Werte von 1 bis 9 ausgegeben. Die Variable "counter3" wird um 1 erhöht, bevor der Vergleich mit der Konstanten "10" durchgeführt wird.

Und nun zum unverständlichen Beispiel mit dem "Postinkrement"-Operator:
Code:
    //Verkürzte while-Schleife durch den Inkrement-Operator
    int counter2 = 0;
    //Variante Postfix-Notation
    while (counter2++ < 10) {
        printf("Wert der Variablen2: %d \n", counter2); 
    }
Theoretisch wird doch hier die Variable "counter2" erst "nach" dem Vergleich um 1 erhöht. Ergo müsste doch die Ausgabe mit "0" beginnen. Tut sie aber nicht, sie beginnt mit 1.
:confused:
Die Deklaration und Definition der Variablen legt diese auf den Wert "0".
Danach der Vergleich, erste Ausgabe "0". Aber warum "1" als erste Ausgabe? Da müsste dann die Variable, trotz Postinkrement-Operator bereits vor der Schleife um 1 erhöht worden sein.

für mich rätselhaft.

Jemand eine Idee?

Danke
Andreas
 
Der Wert wird nach dem Vergleich, aber vor der Ausgabe (prinft) erhöht.
 
  • Gefällt mir
Reaktionen: cropfaktor
Weil es für mich bis dato "false" ist. Wenn ich es kapiere wird es "true".
von "falsch" war auch nicht die Rede, sondern von "verhaspeln". Die Videoschulung an dieser Stelle war formulierungstechnisch sagen wir mal "erheiternd".
 
Zurück
Oben Unten