Kratz00
02-04-2003, 21:27
scheiß betreff, ich weiß aber was besseres viel mir nicht ein :)
unteres kleines c++ prog soll ein bsp für zeiger, referenzen sein
theoretisch sollte es 5 und 8 ausgeben
komischer weiße gibt es wenn die ausgabe in einer zeile erfolgt
erst 8 und dann 5 aus
wenn man es so macht
std::cout << plus(&x, y) << std::endl;
std::cout << << plusplus (x, y) << std::endl;
dann kommt wirklich erst 5 und dann 8
auf meine system gcc 3.2.1 krieg ich erst 8 und 5
auf ner solaris kiste mit gcc 2.95.2 erhalte ich das erwartete ergebnis
wo liegt der (denk)fehler ?
#include <iostream>
int plus (int *a, int b)
{
return *a = *a + b; //a==5 sowie x == 5, a referenz auf x
}
int plusplus (int &a, int b)
{
return a = a + b; //a==8 sowie x == 8, a referenz auf x
}
int main ()
{
int x=2, y=3;
std::cout << plus(&x, y) << " " << plusplus (x, y) << std::endl;
return 0;
}
unteres kleines c++ prog soll ein bsp für zeiger, referenzen sein
theoretisch sollte es 5 und 8 ausgeben
komischer weiße gibt es wenn die ausgabe in einer zeile erfolgt
erst 8 und dann 5 aus
wenn man es so macht
std::cout << plus(&x, y) << std::endl;
std::cout << << plusplus (x, y) << std::endl;
dann kommt wirklich erst 5 und dann 8
auf meine system gcc 3.2.1 krieg ich erst 8 und 5
auf ner solaris kiste mit gcc 2.95.2 erhalte ich das erwartete ergebnis
wo liegt der (denk)fehler ?
#include <iostream>
int plus (int *a, int b)
{
return *a = *a + b; //a==5 sowie x == 5, a referenz auf x
}
int plusplus (int &a, int b)
{
return a = a + b; //a==8 sowie x == 8, a referenz auf x
}
int main ()
{
int x=2, y=3;
std::cout << plus(&x, y) << " " << plusplus (x, y) << std::endl;
return 0;
}