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!