Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
valore di una variabile locale pu essere utilizzato solo allinterno della funzione in cui la variabile definita.
valore di una variabile globale pu essere utilizzato da qualsiasi funzione del progra a: qualsiasi funzione pu odificarne il valore. Le variabili globali sono definite per pri e nel progra a.
int main( void ){ int a " %; change!ultiplier( &0 ); print$( '(i * (i " (i)* a* multiplier* mul( a ) ); // %*&0 change!ultiplier( + ); print$( '(i * (i " (i)* a* multiplier* mul( a ) ); // %*&+ return 0;
Le variabili globali possono essere utilizzate nei progra i in cui pi! funzioni devono accedere al valore di una stessa variabile.
"er
ette di evitare il passaggio esplicito di un para etro. Li ita la leggibilit# del progra a. $iduce la genericit# della funzione.
Valore di default:
Il
int a% && la variabile a inizializzata a ' int arra()*'+ && tutti gli ele enti sono inizializzati a zero.
Le
variabili locali non ,anno un valore iniziale di default e quindi devono essere esplicita ente inizializzate nel progra a.
variabile auto atica creata ogni volta c,e la funzione viene creata. 0uando la funzione ter ina1 queste variabili 2sco paiono3.
Le variabili locali possono essere dic,iarate static,e1 usando la parola c,iave static davanti alla dic,iarazione della variabile.
/na
variabile locale statica creata una sola volta quando viene avviato il progra a principale. 0uando la funzione ter ina1 la variabile antiene il suo valore per una prossi a invocazione della funzione. Le variabili locali static,e ,anno una valore di default pari a zero.
int main( void ){ int i; $or( i " 0 ; i < &0; i## ){ auto,static(); // a sempre &* b valore da & a &0 return 0;
6
Le variabili static,e sono usate per antenere il valore di una variabile tra diverse invocazioni della stessa funzione. Le variabili static,e sono particolar ente utili quando una funzione usa una variabile il cui valore viene i postato una sola volta e non ca bia pi!.
.i
evita line4cienza di dover reinizializzare la variabile ogni volta. 0uesto particolar ente utile con gli arra(.
7
Funzioni $icorsive
/na funzione detta ricorsiva se include una c,ia ata a s5 stessa. Le funzioni ricorsive sono utili quando la soluzione di un proble a pu essere ottenuta applicando successiva ente la stessa soluzione a sotto6proble i pi! piccoli.
Funzioni $icorsive
#include <stdio.h> int $actorial( int n ){ int result; i$( n "" 0 ){ // caso base result " &; else { // passo ricorsivo result " n * factorial( n 1 ); return result;
-nc,e se viene c,ia ata la stessa funzione1 considerata co e una c,ia ata ad una funzione distinta: la funzione acquisisce il suo insie e di para etri for ali e variabili locali.
int main( void ){ int i; $or( i " 0; i < &&; i## ){ print$( '/l $attoriale di (i e0 (i.1n)* i* $actorial(i) ); return 0;