System32
Utente Stellare
@ptm ha ragione, in Java non esiste il passaggio per riferimento come in C però è anche vero che in Java il riferimento stesso ad un oggetto è passato per valore, in sostanza viene fatta una copia del valore dell'indirizzo in memoria dell'oggetto in modo che se il programmatore crea un metodo che modifica una variabile non si avrà alcun effetto sulla variabile originale. Per una migliore comprensione basti vedere il metodo equals che restituisce un valore booleano : restituisce true se gli oggetti puntano entrambi allo stesso riferimento non se hanno lo stesso valore, inteso come proprietà. In C invece esiste il passaggio per riferimento, un esempio può essere il seguente :
Nell'ultima riga viene segnalato il seguente errore : IntelliSense: impossibile assegnare un valore di tipo "int" a un'entità di tipo "int *".
Questo vuol dire che la variabile a, essendo dichiarata come puntatore non può essere modificata per valore, ovvero con un semplice a = tot ma ha bisogno dell'operatore * che va a modificare il riferimento in memoria della variabile.
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Nell'ultima riga viene segnalato il seguente errore : IntelliSense: impossibile assegnare un valore di tipo "int" a un'entità di tipo "int *".
Questo vuol dire che la variabile a, essendo dichiarata come puntatore non può essere modificata per valore, ovvero con un semplice a = tot ma ha bisogno dell'operatore * che va a modificare il riferimento in memoria della variabile.