/* ricorsione: lunghezza di una stringa calcolata ricorsivamente. versione 1: se stringa[0] = '\0' la lunghezza è zero altrimenti è 1 + la lunghezza della stringa rimanente */ int strLen( char x[] ) { if( x[0] == '\0' ) return 0; return 1 + strLen( &x[1] ); } /* versione 2: utilizzo una variabile che conta quanti elementi ho già esaminato se stringa[0] = '\0' la lunghezza è il numero di caratteri che ho esaminato calcola la lunghezza della stringa rimanente addizionando 1 alla variabile che conta */ int strLen1( char x[], int esaminati ) { if( x[0] == '\0' ) return esaminati; return strLen1( &x[1], esaminati + 1 ); } questa funzione deve essere richiamata nel seguente modo int strLen( char x[] ) { return strLen1(x, 0); } Quali sono le differenze tra le due versioni proposte?