Dieses aufgetreten, während ich einen wurde die Bekämpfung ‚Cracking the Coding Interview‘ Frage:Java Zuweisungsoperator Verhalten vs C++
Schreiben Sie eine Funktion eine Reihe an seinem Platz zu tauschen (dh ohne temporäre Variablen)
habe ich beschlossen, meine Lösung in Java zu schreiben (weil ich zur Verwendung von Java in meinem Praktikum Interview plane.)
ich kam mit einer Lösung, die ich die richtige Antwort war fast sicher war (weil ich es tat in eine Zeile):
public static void main(String args[]) {
int a = 5;
int b = 7;
a = b - a + (b = a);
System.out.println("a: " + a + " b: " + b);
}
Sicher genug, dieser Code führt das gewünschte Ergebnis aus. a == 7
und b == 5
.
Jetzt ist hier der lustige Teil.
Dieser Code wird nicht in C++ ausgeführt, noch ist diese Lösung in der Rückseite des Buches.
Also meine Frage ist: Warum genau funktioniert meine Lösung? Ich nehme an, Java macht Dinge anders als andere Sprachen?
Hinweis: xor ........... –
Ich denke (b = a) gibt nichts in C++ zurück. Oder vielleicht liege ich falsch, ich kenne C++ nicht. – Sweeper
Für Java: http://stackoverflow.com/questions/12850676/return-value-of-assignment-operator –