4 Stimmen

Java vs. C-Ausgabe

Das mag einfach erscheinen, aber ich und meine Freunde sind einfach gestolpert...

Nehmen wir den folgenden Codeabschnitt. in Java

//........

int a=10;
a= a-- + a--;
System.out.print("a="+a);
//........

in c

//........

int a=10;
a= a-- + a--;
printf("a= %d",a);
//.......

wobei im ersten Fall die Ausgabe 19 und in C die Ausgabe 18 lautet. Die Logik in C ist verständlich, aber in Java?

in java, wenn es wie

int a=10;
a=a++;

in diesem Fall ist die Ausgabe 10.

Was ist also die Logik?

0 Stimmen

Sieht aus wie: a=a++; ==> tmp=a; a=a+1; a=tmp;

0 Stimmen

Ok, was ist mit a=a++; für a=10, was sollte die Ausgabe sein?

0 Stimmen

Hey Leute, was ist mit dem letzten Teil der Frage? a=10; a=a++; ...print a zeigt 10 als Ausgabe? sollte es nicht 11 sein?

0voto

Michael Foukarakis Punkte 37819
a= a-- + a--;

Dies ruft in C/C++ ein undefiniertes Verhalten hervor. Sie sollten von dieser Anweisung keine konsistenten Ergebnisse erwarten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X