int è composto da 32 bit, quindi pippo occuperà 32 bit da qualche parte sullo stack (è una variabile locale) e quando chiamato viene invocato, verrà creato lo spazio di 32 bit di nuovo da qualche parte sullo stack per pluto (che è un parametro ma comunque sempre una variabile locale).
Nel momento della invocazione, la virtual machine semplicemente copia il valore dei 32 bit di pippo nello spazio di memoria predisposto per pluto. Quindi in effetti entrambe le variabili hanno inizialmente lo stesso valore es. 1000. Ma sono due variabili distinte, quindi se cambi successivamente il valore di pluto, NON cambi il valore di pippo.
È come fare:
int a = 1000;
int b = a;
A questo punto b ed a hanno lo stesso valore. Ma se fai b = 2000; cambi solo b, NON a.
No, non manca niente, lo statement è corretto. Il codice è incompleto, bisogna chiaramente metterlo dentro una classe perché sia usabile (e poi ovviamente invocare chiamante). L'esempio mostra solo un metodo (chiamante) che invoca un altro metodo (chiamato), che dovrebbe servire giusto per capire il passaggio degli argomenti.


Rispondi quotando
