Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Funktionsaufruf in Ausdrücken?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.09.2008, 04:39 Uhr
~new-bee
Gast


Hallo,

ich habe Probleme mit folgendem Code aus einem Buch:

#include <iostream>

using namespace std;

int x = 0;
int op(int i) {
x = i;
return 1;
}

int func() {
int y;
y = op(2) + x*3; <---
return y;
}

int main(void)
{
int erg = func();

cout << erg <<endl;

return 0;
}

In dem Ausdruck "y = f(2) + x*3;" wird eine weitere Funktion "op" aufgerufen, in der x=2 gesetzt wird. So das da stehen würde: y = 1 + 2*3;
Aber für den Ausdruck "y = f(2) + x*3;" sollte doch eigentlich x=0 gelten, weil doch die Zuweisung x=2 nur im Anweisungsblock der Funktion "op" gültig sein dürfte. So dass ich das im Sinne von y = 1 + 0*3 verstehen würde. Mein Compiler gibt mir da aber leider Unrecht.
Wo steckt mein Denkfehler?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.09.2008, 09:01 Uhr
Tommix



Hallo,
x ist außerhalb von op deklariert und somit global. Das Beispiel soll - hoffentlich - zeigen, welche Probleme dies bereiten kann.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.09.2008, 09:24 Uhr
~new-bee
Gast


Vielen Dank Tommix,

habe den Wald vor lauter Bäumen nicht mehr gesehen :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: