Ciao ragazzi, qualcuno mi può aiutare con il seguente esercizio?
Dato il seguente programma in un linguaggio non meglio identificato, indicare cosa stampa il programma nel caso di:
1. parametri passati per valore;
2. parametri passati per riferimento;
3. parametri passati per valore-risultato
int x=1;
int w = 3;
int z= 10;
int f(int y){
y=20;
throw E;
return (x++) + y;
}
int g(int y){
y=100;
try{
throw E;
}
catch E{ }
return (x++) + y;
}
try{
f(w);
}
catch E{ }
print (x,w,z);
z = g(w);
print (x,w,z);
Io ho svolto l'esercizio nel seguente modo ma non sono sicura che sia corretto:
passaggio per valore:
il primo print stampa 1,3,10
il secondo print stampa 2,3,10
passaggio per riferimento
il primo print stampa 2,20,10
il secondo print stampa 3,100,102
passaggio per valore-risultato
il primo print stampa 2,20,10
il secondo print stampa 4,100,103
mi sapreste dire se è corretto o eventualmente quali errori ho commesso? Grazie!