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.

Antwort per Email an