che viene passato alla subroutine è una copia del valore attuale di quella
variabile, copia che la subroutine potrà modificare a piacere, senza che il
valore originale nella routine chiamante venga toccato. In questo modo non
-occorre preoccuparsi di eventuali effetti delle operazioni della subroutine.
+occorre preoccuparsi di eventuali effetti delle operazioni della subroutine
+sulla variabile passata come parametro.
-La maggior parte delle funzioni di libreria e delle system call funziona
-esattamente in questo modo restituendo eventuali risultati alla routine
-chiamante attraverso il valore di ritorno. Talvolta però è necessario che la
-funzione possa restituire indietro alla funzione chiamate un valore relativo
-ad uno dei sui parametri.
+Questo però va inteso nella maniera corretta. Il passaggio \textit{by value}
+vale per qualunque variabile, puntatori compresi; quando però in una
+subroutine si usano dei puntatori (ad esempio per scrivere in un buffer) in
+realtà si va a modificare la zona di memoria a cui essi puntano, per cui anche
+se i puntatori sono copie, i dati a cui essi puntano sono sempre gli stessi, e
+le eventuali modifiche avranno effetto e saranno visibili anche nella routine
+chiamante.
+Nella maggior parte delle funzioni di libreria e delle system call i puntatori
+vengono usati per scambiare dati (attraverso buffer o strutture) e le
+variabili semplici vengono usate per specificare parametri; in genere le
+informazioni a riguardo dei risultati vengono passate alla routine chiamante
+attraverso il valore di ritorno. Talvolta però è necessario che la funzione
+possa restituire indietro alla funzione chiamate un valore relativo ad uno dei
+suoi parametri. Per far questo si usa il cosiddetto \textit{}. Pertanto occorre
+tenere conto che quando si vuole restituire un risultato alla funzione
+chiamante occorre usare un puntatore.
\label{sec:proc_auto_var}
+
\subsection{Il controllo di flusso non locale}
\label{sec:proc_longjmp}