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?