Ciao, ragazzi! Sto facendo una serie di esercizi sullo scope statico e scope dinamico, ma credo di non aver compreso perfettamente la differenza su alcuni punti.
Ad esempio, ho provato a svolgere il seguente esercizio, il più semplice. Potete controllare per favore se ho inserito i valori corretti (nei commenti)?
Questa è la traccia :
Si dica cosa viene stampato dal seguente frammento di codice scritto in uno pseudolinguaggio che usa scope dinamico e passaggio per riferimento.
codice:
{int x = 1;
int y = 1;
void pippo(reference int z){
z = x + y + z;
}
{int y = 3;
{int x = 3; // Secondo me, questo blocco viene ignorato, perché é mascherato da x = 1;
}
pippo(y); // ---> y = 5
write(y); // ---> Stampa a video 1 (ma non ne sono sicura)
}
write(y); // ---> Stampa 1
}
Inoltre non ho ancora ben capito cosa mi cambia ai fini del risultato se il passaggio avviene per riferimento, anziché per valore, quali valori otterrei? Per me, sempre riferendomi a questo esercizio, il risultato non cambierebbe..