Zahlen tauschen
-
im grunde wie in technischer informatik die und/oder/xor/etc.. verknüpfungen
http://www.pronix.de/modules/C/openbook/c_programmierung_9.php#5
-
#include <stdio.h> int main(void) { int a = 23, b = 27331; printf("a = %d, b = %d\n", a, b); a ^= b; b ^= a; a ^= b; printf("a = %d, b = %d\n", a, b); }
-
a^=b^=a^=b;
Danke, steht aber schon in dem anderem Thread. Und dank des Links hab ich es auch verstanden
[CLOSE]
-
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
-
das geht aber eigentlich mit allen Grundrechenarten.
a = a + b;
b = -( b - a);
a = a - b;oder seh ich das jetz falsch ?
-
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind rechtsassoziativ.
@DocJunior: Mathematisch ist das richtig, aber auf die Art kriegst du mit dem Computer Probleme, wenn dir die Variable überläuft.
-
0xdeadbeef schrieb:
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind
... keine Sequenzpunkte. Wie oft wird a verändert? Eben, eben.
-
Ach, stimmt - du hast natürlich recht. Hab ich mir wohl die Hirnwindungen in die falsche Richtung verrenkt...
-
Daniel E. schrieb:
0xdeadbeef schrieb:
Daniel E. schrieb:
mnhg schrieb:
a^=b^=a^=b;
Undefiniertes Verhalten.
Nein. Zuweisungen sind
... keine Sequenzpunkte. Wie oft wird a verändert? Eben, eben.
Erklär mir mal was du meinst
-
-
danke