Bedeutung von += in C



  • Hi,

    nur eine kurze Frage, weil google mir iwie auf die schnelle nicht weiterhilft.. Habe mich mal wieder an ein C Tutorial gesetzt und bin dabei auf folgende endlos while-schleife zur Summenberechnung gestoßen:

    [code="c"]
    /* while2.c */
    #include <stdio.h>

    int main(void) {
    int zahl, summe=0;
    printf("Summenberechnung\nBeenden der Eingabe mit 0 \n");

    while(1) { /* Endlosschleife, denn: 1 ist immer wahr /
    printf("Bitte Wert eingeben > ");
    scanf("%d", &zahl);
    if(zahl == 0) /
    Haben wir 0 eingegeben ...? /
    break; /
    ... dann raus aus der Schleife /
    else
    summe
    *+=**zahl;
    }
    printf("Die Summe aller Werte beträgt: %d\n", summe);
    return 0;
    }
    [/code]

    Nur die simple Frage: Was bedeutet das += genau? Also klar, habe rumprobiert, ohne summiert er nicht auf, aber irgendwie finde ich dazu jetzt auch nichts genaues... Könnte man es eigentlich auch iwie anders lösen?

    LG



  • Gleich so viel Code ? :p

    a += b;
    a = a + b;
    

    macht beides das selbe.



  • a += b ist dasselbe wie a = a + b

    (jedenfalls bis auf das Detail, dass a nur einmal ausgewertet wird).

    Zu deinem Code kann ich wenig sagen, hab meine Brille nicht auf.



  • Bashar schrieb:

    (jedenfalls bis auf das Detail, dass a nur einmal ausgewertet wird).

    Wie meinst du ? Es sollte genau das gleiche machen.



  • DarkShadow44 schrieb:

    Wie meinst du ?

    Wenn a ein Ausdruck mit Seiteneffekten ist, spielt das eine Rolle.



  • Bashar schrieb:

    DarkShadow44 schrieb:

    Wie meinst du ?

    Wenn a ein Ausdruck mit Seiteneffekten ist, spielt das eine Rolle.

    Wir sind aber im C-Forum, da sollte das nicht passieren können, bestenfalls wenn noch ein zweiter Thread daran herumwurschtelt. 😃



  • Was hat das mit dem C-Forum zu tun?

    int a[1] = {0}, b = 1;
    a[(puts("Hallo"), 0)] += b;
    
    a[(puts("Hallo"), 0)] = a[(puts("Hallo"), 0)] + b;
    


  • Bashar schrieb:

    Was hat das mit dem C-Forum zu tun?

    int a[1] = {0}, b = 1;
    a[(puts("Hallo"), 0)] += b;
    
    a[(puts("Hallo"), 0)] = a[(puts("Hallo"), 0)] + b;
    

    OK. Punkt für Dich. 👍

    mfg Martin



  • Danke!


Log in to reply