Come funzionino all'atto pratico le cose dipende dal compilatore; con ogni probabilità buona parte dei compilatori incrementeranno lo stack pointer prima dell'inizio del while (allocando così le due variabili) e lo decrementeranno solo alla fine di tutte le iterazioni del while, ma l'idea del linguaggio è che quelle variabili sono locali di quel blocco, in cui ad ogni iterazione si entra e si esce. Di conseguenza è come se fossero sempre variabili "nuove".

Rispondi quotando