Originariamente inviato da pat87
si puo essere anche corretto,ma se inizializzi int valore=0, ogni volta che lui ricicla riporta sempre il valore a 0, percio n può essere utile a niente,perchè praticamente la variabile valore riceverebbe solo l'ultimo valore uscendo dal ciclo...
La variabile viene usata come un contatore del ciclo, non e' vero che ad ogni loop la variabile viene reinizializzata a 0, infatti :

Il primo termine del for e' l' inizializzatore, viene eseguito solo ad inizio ciclo;
Il secondo termine e' la condizione di riciclo, se quest' ultima non e' vera ( != 0 ) il ciclo viene terminato.
Il terzo termine e' un istruzione che viene eseguita ad ogni loop, solitamente per incrementare un contatore.

Quindi, riassumendo, dichiarare una varbiabile in un ciclo for e' piu' che lecito ed e' una tecnica largamente utilizzata.

PS : Ovviamente la variabile cosi' dichiarata funge da contatore e va' fuori scope non appena il ciclo e' terminato e viene di conseguenza distrutta.

PPS : Penso di aver frainteso la richiesta, io stavo parlando della variabile i , lascio scritto ugualmente.