Postinkrement-Operator vs. Präinkrement-Operator

cropfaktor

Aktives Mitglied
Thread Starter
Mitglied seit
18.01.2008
Beiträge
1.148
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
 

DeineMudda

unregistriert
Mitglied seit
12.05.2005
Beiträge
900
Der Wert wird nach dem Vergleich, aber vor der Ausgabe (prinft) erhöht.
 

cropfaktor

Aktives Mitglied
Thread Starter
Mitglied seit
18.01.2008
Beiträge
1.148
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".
 

Ähnliche Themen

Oben