Che differenza c’è tra il passaggio di variabili per valore e il passaggio per riferimento?

Utente HTML.it
chiede

Che differenza c’è tra il passaggio di variabili per valore e il passaggio per riferimento?

Redazione HTML.it
risponde

Innanzi tutto, bisogna precisare che si parla di passaggio di
variabili per valore o per riferimento quando si crea un routine.
Ad esempio:

Private Sub CalcolaRaggio(ByVal R As Double, ByRef
Risultato As Double)

La variabile R è passata per valore
(ByVal), mentre la variabile Risultato è
passata per riferimento (ByRef).

Il passaggio per valore consente alla routine di accedere a
una copia della variabile; di conseguenza, il valore effettivo
della variabile non può essere modificato dalla routine
alla quale viene passato. Viceversa, il passaggio per riferimento
consente alla routine di accedere alla variabile effettiva,
quindi il suo valore può essere modificato dalla routine
alla quale viene passato e la modifica ha valore anche al di
fuori della routine stessa. Se non diversamente specificato, gli
argomenti di una routine vengono passati per riferimento.