Blog del corso di Programmazione (9 CFU) tenuto da Marco La Cascia presso l'Universita' di Palermo per il corso di laurea in Ingegneria Informatica e delle Telecomunicazioni. Tratta la programmazione a oggetti in Java.
mercoledì 13 novembre 2013
Nuove note disponibili
Disponibili le note relative alle funzioni e parte delle note relative alle classi.
Salve professore, scusi il disturbo avrei una domanda. Essendo un array sostanzialmente un puntatore, mi chiedevo se passare un array ad una funzione per valore, equivale a passarlo per riferimento. Ad esempio se avessi:
void crea (array[]); //prototipo di una funzione che crea un array
int main(){ int array[10]; crea (array); return 0; }
Questo sarebbe un passaggio per valore no? Ma effettivamente l'array rimane modificato anche nel main quindi è anche un passaggio per riferimento, o comunque funge da tale dato che l'effetto che abbiamo è lo stesso dico bene?
In realtà tu passi per valore un puntatore costante al primo elemento dell'array. Con quel puntatore puoi però modificare il contenuto dell'array e quindi ottieni l'effetto di un passaggio per riferimento.
Salve professore, scusi il disturbo avrei una domanda.
RispondiEliminaEssendo un array sostanzialmente un puntatore, mi chiedevo se passare un array ad una funzione per valore, equivale a passarlo per riferimento. Ad esempio se avessi:
void crea (array[]); //prototipo di una funzione che crea un array
int main(){
int array[10];
crea (array);
return 0;
}
Questo sarebbe un passaggio per valore no? Ma effettivamente l'array rimane modificato anche nel main quindi è anche un passaggio per riferimento, o comunque funge da tale dato che l'effetto che abbiamo è lo stesso dico bene?
In realtà tu passi per valore un puntatore costante al primo elemento dell'array. Con quel puntatore puoi però modificare il contenuto dell'array e quindi ottieni l'effetto di un passaggio per riferimento.
RispondiEliminaOk chiaro. Grazie mille
RispondiElimina