Le variabili automatiche sono variabili locali in un blocco di istruzioni.
Esse sono automaticamente allocate sullo stack quando si entra in quel blocco di codice; parallelamente, vengono distrutte quando si esce dal blocco stesso.
Ad esempio, si consideri il seguente codice in linguaggio C:
Utilizzando il compilatoregcc, si otterrà come risultato:
b = 10
perché la stessa locazione di memoria che era stata allocata per a viene poi utilizzata per allocare b, all'ingresso del secondo blocco.
Le variabili automatiche hanno un valore indefinito quando sono dichiarate (in gergo si dice che sono sporche), perciò è buona abitudine inizializzarle con valori validi prima del loro utilizzo. La maggior parte dei compilatori moderni, se invocati con i giusti parametri, riconosce l'uso di variabili non inizializzate ed avverte l'utente del possibile errore.