自動変数 【automatic variable】 オート変数 / auto変数
CやC++言語などでは、関数やコードブロックの中で宣言した変数はその中でのみ参照できる「ローカル変数」(local variable)となる。その際、「auto int x;」のようにauto修飾子で宣言を行うと、その変数は自動変数として扱われ、関数などの開始時に自動的にメモリ領域が割り当てられ、終了時に自動的に解放(変数の内容は破棄)される。
一方、「static int y;」のようにstaticキーワードで宣言すると、その変数は静的変数(この場合は静的ローカル変数)となり、実行時に最初に確保されたメモリ領域がそのままプログラム終了まで存続し、何度関数を呼び出しても同じ領域の同じ内容が参照される。通常は自動変数を使う方が多いためautoは省略可能で、staticを指定しなければ自動変数とみなされる。
このように、変数を実行時のメモリ上での取り扱いによって分類する考え方を「記憶クラス」と呼び、C言語の場合は自動変数と静的変数の他に外部変数(関数外で宣言され、すべての関数などから同じように参照できる)がある。
(2021.6.25更新)