自動変数 | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラム実行中、自動的にメモリに配置され、自動的に解放される変数のことです。

多くのプログラミング言語において、自動変数とはローカル変数のことです。つまり、関数内で宣言されているローカル変数は、その関数が実行されるときに、自動的にメモリに配置され(多くの場合、コールスタックにその場所がある)、関数からリターンするときに自動的に解放されます。

ローカル変数であっても、プログラムの実行開始から終了まで存在し続けるように指定された変数は自動変数とは呼ばず、静的変数と呼ばれます(たとえば、C言語や C++ では、static指定子を付加して宣言されたローカル変数が該当する)。

C言語、C++ の場合

C言語や C++ では、自動記憶域期間という用語で表現されます(「自動記憶域期間をもつ変数」のように)。static指定子を付加されていない、普通のローカル変数のことです。

void func(void)
{
    int a;          // 自動記憶域期間をもつ変数
                    // func関数が実行されるときにメモリに置かれる

    static int b;   // 静的記憶域期間をもつ変数
                    // プログラムが実行開始したときにメモリに置かれる

    // ...

}   // 関数からリターンするとき、a は解放されるが、b は残る

古い標準規格では、auto指定子を付加して宣言することで、それが自動記憶域期間をもつ変数であることを明示できましたが、冗長なので普通は使われることはありませんでした。また、C11規格になって廃止されています。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る