*
 * Vediamo il listato precedente reso un po piu' "elegante".
 * Ricordiamoci la forma del for:
 *
 *	for(inizializzazione ; condizione ; incremento)
 *		istruzione da eseguire;
 *
 * Che avevamo imprementato cosi':
 *
 *	for(pippo=1 ; pippo<10 ; pippo=pippo+1)
 *		printf("Tanti saluti\n");
 *
 * Innanzitutto possiamo indrodurre un paio di nuovi operatori: oltre ai
 * noti operatori +, -, *, /, abbiamo una coppia di operatori speciali
 * che servono ad incrementare o decrementare di 1 una variabile:
 *
 *      ++	; incremento di 1, ad esempio pippo++
 *	--	; decremento di 1, ad esempio pippo--
 *
 * Da notare che e' possibile mettere il ++ o -- sia prima che dopo la
 * variabile, e l'unica differenza e' che l'incremento/decremento avviene
 * prima o dopo che la variabile stessa sia utilizzata. Nel nostro caso
 * questo e' indifferente, vedremo in seguito casi in cui questa differenza
 * e' significativa. Per ora basta ricordarsi che:
 *
 *	pippo++		equivale a	pippo=pippo+1
 *	pippo--		equivale a	pippo=pippo-1
 *
 * A questo punto il nostro for diventa cosi':
 *
 *	for(pippo=1 ; pippo<10 ; pippo++)
 *
 * Gia' che ci siamo, proviamo ad usare il for in modo inverso, ossia
 * decrementando ogni volta la variabile aspettando che arrivi ad 1:
 *
 *	for(pippo=10 ; pippo>1 ; pippo--)
 *
 * Come si vede, si inizializza la variabile pippo a 10, ogni volta si
 * decrementa di 1 aspettando che non sia piu' maggiore di 1, ossia che
 * sia uno. Cio' fa eseguire 9 volte il loop, esattamente come la versione
 * che incrementa pippo. A questo punto, se facciamo stampare ad ogni loop
 * il valore di pippo, possiamo verificare che il conto e' "alla rovescia".
 * Giusto per dare un'altro tocco di eleganza, possiamo dichiarare la nostra
 * variabile non prima il main(), ma dopo. Cosa cambia? Che la definiamo
 * locale anziche' globale. Infatti, se definiamo una variabile all'esterno
 * di tutte le funzioni, da esempio tra #include e main(), come abbiamo
 * fatto fino ad ora, la variabile e' di tipo globale, ossia puo' essere
 * usata da qualsiasi funzione del listato, in qualsiasi punto.
 * Invece, se definiamo una variabile all'interno di una funzione, ossia
 * all'interno delle parentesi { e } che ne definiscono il corpo, la
 * variabile e' locale, ossia e' accessibile solo dalle istruzioni
 * all'interno del blocco {....} in cui sono state dichiarate.
 */

#include 	/* Includiamo la libreria standard */

main()			/* Funzione principale, eseguita per prima */
{			/* Inizio della funzione main() */

   int pippo;		/* Definiamo una variabile intera pippo che servira'
			 * come contatore per il numero di cicli FOR.
			 * Da notare che e' una variabile locale, essendo
			 * all'interno della funzione main() */

/* Stampiamo il valore di pippo, che andra' da 10 a 2 durante il loop */

   for(pippo=10 ; pippo>1 ; pippo--)	/* Notare il -- */
     printf("Pippo e' %d\n", pippo);

} 			/* Fine della funzione main() */

/* Risultato del listato: stampa del valore di pippo (da 10 a 2).
 * Abbiamo visto l'operatore x++, che ci risparmia di scrivere x=x+1.
 * Esistono degli operatori di assegnamento, oltre ad "=", che permettono
 * di risparmiare spazio e "fatica", abbreviando la sintassi:
 *
 *  pippo *= pluto;     ->      pippo = pippo * pluto;
 *  pippo /= pluto;     ->      pippo = pippo / pluto;
 *  pippo %= pluto;     ->      pippo = pippo % pluto;
 *  pippo += pluto;     ->      pippo = pippo + pluto;
 *  pippo -= pluto;     ->      pippo = pippo - pluto;
 *
 * Quando cioe' ad una variabile si assegna il valore della stessa variabile
 * +,-,*,/,% qualche altra variabile, o costante, anziche' riscrivere il suo
 * nome si preferisce abbreviare in questo modo.
 * Esempi:
 *
 * pippo = pippo+3;     ->      pippo += 3;
 * x = x*pluto;         ->      x *= pluto;
 *
 */