自動的記憶域クラスで定義された識別子は、その定義されたプロシージャが実行中の時のみ寿命を持ち、用意された記憶領域は自動的に解放されます。
以下のプログラムでは、main.iとmain.jはプログラム実行中には寿命を持ちます。他方、test.kは関数testの実行中のみ寿命をもち、testの実行が終ると寿命は終了し、用意された記憶領域は自動的に解放されます。C言語では記憶域クラスの指定を何もしない場合、autoと見なされます。明示的にautoをつけて宣言した識別子は、自動的な記憶域クラスを持ちますが、C言語ではこれは省略するのが一般的です。<プログラムリスト>
#include <stdio.h> int test(int m); int main(void) { int i, j; /* 自動的記憶域クラスをもつ変数i, j */ i = 10; j = test(i); printf("%d\n",j); j = test(i); printf("%d\n",j); } int test(int m) { auto int k; /* 自動的記憶域クラスをもつ変数 k */ /* auto は書かなくても良い */ k = m * 10; return k; }<実行結果> 100 100