Inkrement- und Dekrementoperator



  • hallo zusammen,

    könnte mir bitte jemand den folgenden Code der in C programmiert ist erklären?
    Habe schon eine Erklärung durchgelesen die ich allerdings nur so halb verstehe..

    /* Demonstration des Inkrement- und Dekrementoperators */
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
       int wert = 1;
       wert++;
       printf("Wert : %d\n", wert);     /* wert = 2 */
       printf("Wert : %d\n", wert++);   /* wert = 2 */
       printf("Wert : %d\n", ++wert);   /* wert = 4 */
       printf("Wert : %d\n", wert--);   /* wert = 4 */
       printf("Wert : %d\n", --wert);   /* wert = 2 */
    
    	system("PAUSE");
    	return 0;
    
    }
    

    Danke im Voraus!

    MfG Micha



  • Hallo,

    beim Postfix operator wird erst der alte Wert zurueckgegeben und dann wird
    der Wert der Variable erhoeht:

    int wert = 5;
    cout<<wert++; //erst wird der alte Wert (5) zurueckgegeben, hier also
                  //ausgegeben. Danach wird wert um eins erhoeht und ist 6
    cout<<"\n"<<wert; //jetzt ist wert 6
    

    Beim Prefix operator wird erst der Wert erhoeht und dann zurueckgegeben:

    int wert = 5;
    cout<<++wert; //erst wird Wert um eins erhoeht (6) und dann ausgegeben
    cout<<"\n"<<wert; //selbe ausgabe wie eine zeile darueber
    

    gruss
    v R



  • Danke für deine Antwort!

    Also ist das das Selbe wie z.B. +=1 oder -=1 ?

    MfG Micha



  • Egtl gibt der Postfixoperator eine Kopie des nicht inkrementierten Objekts zurück. Da zuerst Wert zurückgeben und dann Inkrementieren nicht möglich ist! 😉



  • Michael991 schrieb:

    Danke für deine Antwort!

    Also ist das das Selbe wie z.B. +=1 oder -=1 ?

    Ja, zumindest beim Prefix-Operator. Beim Postfix würde das eher so aussehen:

    int i = 1;
    int tmp = i;
    i+=1;
    int x = tmp;
    
    // oder kurz:
    int i = 1;
    int x = i++;
    

    Greetz


Anmelden zum Antworten