Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Funzioni e Array
Oltre a variabili di tipo primitivo e valori, possibile passare come argomento di una funzione il valore di un elemento di un array, oppure un intero array. Un elemento di unarray con tipo base primitivo trattato come una qualsiasi variabile di tipo primitivo: il suo valore copiato allinterno del parametro formale. l passaggio di unarray come argomento di una funzione !a un funzionamento diverso.
#on necessario indicare nella dic!iarazione della funzione la dimensione dellarray: il compilatore ignora questa informazione. $er far funzionare la funzione con array di dimensione diversa possibile aggiungere un parametro c!e contiene tale informazione:
int
&uando viene passato un array come argomento di una funzione, la funzione riceve l'indirizzo di memoria in cui si trova larray. (iferendosi a tale indirizzo, la funzione !a accesso proprio all'array originale. Se una funzione che riceve un array come argomento, cambia il valore di un elemento di tale array, tale modifica viene apportata allarray originale che stato passato alla funzione.
};
+' indirizzo della memoria contenente larray a copiato nel parametro formale x. &ualsiasi modi)ca fatta al contenuto di tale locazione di memoria dalla funzione sum persiste anc!e dopo la terminazione di tale funzione.
$assare
#ella dic!iarazione di una funzione c!e !a come argomento un array bi0dimensionale possibile omettere nella dic!iarazione numero di rig!e, ma non il numero di colonne:
int int int int
a##ay$values[10][%]) 1A+ "O a##ay$values[][%]) 1A+ "O a##ay$values[10][]) #O# 1A+ "O a##ay$values[][]) #O# 1A+ "O
dei quali !a tipo array di 4 elementi interi. int a##ay$values[][%]: un array di x elementi ciascuno dei quali !a tipo array di 4 elementi interi. int a##ay$values[10][]: un array di 23 elementi ciascuno dei quali !a un tipo non noto5
l compilatore deve sapere il tipo degli elementi per garantire la corretta invocazione delle funzioni5