Kurze Frage...
-
Wieso kommt hier 40.0 raus?
#include <stdio.h> main(){ float a; a = 2 *(3, 14 + 6); printf ("%.1f\n",a); system("PAUSE"); }
ich versteht das "," nicht. Ein Komma wär ja '.'...
Wie rechnet das der Computer?
Danke
-
Mein Kompiler meint: left-hand operand of comma expression has no effect
-
Google <- "c comma operator"
-
Wenn ich dannach google, dann kommt da zb, dass ich damit Variablen bei der Initialisierung und sowas trennen kann. Dass der dafür da ist weiss ich selber, ich weiss nur nicht was er an der Stelle im Beispiel macht
-
Beim ersten Ergebnis steht:
Precisely stated, the meaning of the comma operator in the general expression e1 , e2 is ``evaluate the subexpression e1, then evaluate e2; the value of the expression is the value of e2.'' Therefore, e1 had better involve an assignment or an increment ++ or decrement -- or function call or some other kind of side effect, because otherwise it would calculate a value which would be discarded.
int a = 1; int b = 2; assert( (a, b) == b );
-
Beim Kommaoperator wird der zuletzt stehende Ausdruck zurückgegeben. In deinem Fall also 14 + 6. Folglich wird berechnet: 2 * (14 + 6) = 40
Wenn du eine Dezimalzahl willst, dann musst du den Punkt verwenden, da es sich um die Amerikanische Schreibweise handelt. Die Zahl 3,14 ist also 3.14.
a = 2 * (3.14 + 6);
-
Ok danke