Hallo,
vielleicht OT, weil nicht Linux, aber es ist C++ und passiert auch unter
Linux ;-)
Hier folgen zwei kleine Programme und ich suche eine plausible Erkl�rung
f�r die Ausgabe. (Passieren hier undefinierte Dinge? Wenn ja, wo
steht, da� es undefiniert ist, was passiert?)
Probiert sowohl mit gcc version 2.95.2 20000220 (Debian GNU/Linux)
als auch mit MSCVC++ 6.0. (Wenn ich mich recht erinnere, dann dort mit
den selben Resultaten.)
Danke schonmal.
Heiko
#include <iostream>
using namespace std;
int main()
{
int z = 5;
// (1)
// was passiert? Werden wir 67 oder 76 sehen?
cout << ++z << ++z << endl; // -> 76
double d = 5;
int i = 5;
// (2)
// Und was werden wir hier wohl sehen?
// (Was �berhaupt, und auch zweimal das selbe?)
cout << ++d * ++d << endl; // -> 42
cout << ++i * ++i << endl; // -> 49
return 0;
}
Vielleicht kann das ja einer, der sich als C++-Experte f�hlt,
mal bitte ausprobieren. F�r C-J�nger ist wenigstens noch ein Problem
(das erste):
#include <stdio.h>
int main()
{
int z = 5;
double d = 5;
int i = 5;
// was passiert? Werden wir 67 oder 76 sehen?
printf("%d%d\n", ++z, ++z);
// -> Es ist jedesmal 42 zu sehen, das leuchtet mir auch
// einigerma�en ein. Ist also in C kein Problem.
printf("%f\n", ++d * ++d);
printf("%f\n", ++i * ++i);
return 0;
}
--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an [EMAIL PROTECTED] die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: [EMAIL PROTECTED]
-----------------------------------------------------------
864 eingetragene Mitglieder in dieser Liste.